W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
CardLayout將組件布局為一堆卡。在CardLayout中只能看到頂部的一張卡。
CardLayout一次只能顯示一個組件。
以下步驟顯示如何為容器使用CardLayout:
首先,創(chuàng)建一個容器,如JPanel。
JPanel cardPanel = new JPanel();
然后,創(chuàng)建一個CardLayout對象。
CardLayout cardLayout = new CardLayout();
然后設置容器的布局管理器。
cardPanel.setLayout(cardLayout);
之后,將組件添加到容器中。 我們需要給每個組件一個名稱。
cardPanel.add(new JButton("Card 1"), "myCard");
“myCard"可以在CardLayout的show()方法中使用,以使此卡可見。
最后,從CardLayout調用next()方法顯示下一張卡。
cardLayout.next(cardPanel);
CardLayout類有幾種方法來遍歷組件。
默認情況下,它顯示添加到它的第一個組件。
所有與顯示相關的方法都將容器作為參數(shù)。
第一個()和last()方法分別顯示第一個和最后一個卡。
上一個()和下一個()方法顯示當前顯示的卡的上一個和下一個卡。
如果最后一張卡顯示,調用next()方法顯示第一張卡。如果第一個卡顯示,調用previous()方法顯示最后一個卡。
以下代碼演示如何使用CardLayout。
import java.awt.BorderLayout; import java.awt.CardLayout; import java.awt.Container; import java.awt.Dimension; // w ww. j av a 2 s. c om import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; public class Main { public static void main(String[] args) { JFrame frame = new JFrame("CardLayout"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container contentPane = frame.getContentPane(); JPanel buttonPanel = new JPanel(); JButton nextButton = new JButton("Next"); buttonPanel.add(nextButton); contentPane.add(buttonPanel, BorderLayout.SOUTH); final JPanel cardPanel = new JPanel(); final CardLayout cardLayout = new CardLayout(); cardPanel.setLayout(cardLayout); for (int i = 1; i <= 5; i++) { JButton card = new JButton("Card " + i); card.setPreferredSize(new Dimension(200, 200)); String cardName = "card" + 1; cardPanel.add(card, cardName); } contentPane.add(cardPanel, BorderLayout.CENTER); nextButton.addActionListener(e -> cardLayout.next(cardPanel)); frame.pack(); frame.setVisible(true); } }
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: