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);
}
}
以上内容是否对您有帮助:

免费 AI IDE


更多建议: