Java Swing CardLayout
2018-01-09 19:23 更新
Java Swing教程 - Java Swing CardLayout
CardLayout将组件布局为一堆卡。在CardLayout中只能看到顶部的一张卡。
CardLayout一次只能显示一个组件。
以下步骤显示如何为容器使用CardLayout:
首先,创建一个容器,如JPanel。
JPanel cardPanel = new JPanel();
然后,创建一个CardLayout对象。
CardLayout cardLayout = new CardLayout();
然后设置容器的布局管理器。
cardPanel.setLayout(cardLayout);
之后,将组件添加到容器中。 我们需要给每个组件一个名称。
cardPanel.add(new JButton("Card 1"), "myCard");
“myCard"可以在CardLayout的show()方法中使用,以使此卡可见。
最后,从CardLayout调用next()方法显示下一张卡。
cardLayout.next(cardPanel);
CardLayout类有几种方法来遍历组件。
默认情况下,它显示添加到它的第一个组件。
所有与显示相关的方法都将容器作为参数。
第一个()和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); } }
以上内容是否对您有帮助:
更多建议: