📅  最后修改于: 2023-12-03 15:15:56.817000             🧑  作者: Mango
在Java Swing界面开发中,Layout Manager是至关重要的一部分。其中之一是CardLayout。它是一个布局管理器,它允许开发人员将多个组件垂直堆叠在一个空间内,每次只显示一个组件。
CardLayout 来管理和显示用户界面中多个组件。
代码样例:
import java.awt.CardLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class CardLayoutDemo {
private JPanel panel;
private CardLayout layout;
public static void main(String[] args) {
new CardLayoutDemo();
}
public CardLayoutDemo() {
JFrame frame = new JFrame("CardLayout Demo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
panel = new JPanel();
layout = new CardLayout();
panel.setLayout(layout);
panel.add(new JLabel("JLabel Page"), "JLABEL");
panel.add(new JButton("JButton Page"), "JBUTTON");
frame.add(panel);
frame.setSize(400, 300);
frame.setVisible(true);
layout.show(panel, "JBUTTON");
}
}
在这个样例中,我们使用JFrame来包含Panel,CardLayout将Panel中的组件按名称进行管理。
在这个例子中,我们可以使用两个方法来显示相应的面板。
layout.show(panel, "JBUTTON");
此方法让布局管理器显示panel中的名称为JBUTTON的组件。您可以使用其他名称。
layout.next(panel);
此方法将显示下一个组件。
public void addLayoutComponent(Component comp, Object constraints)
在CardLayout中添加组件有两个参数:
例如:
panel.add(new JLabel("Control Panel"), "controlpanel");
public void show(Container parent, String name)
这个方法允许您在容器中显示特定的组件,您可以使用组件的名称来标识它。
例如:
layout.show(panel, "controlpanel");
CardLayout允许Java Swing应用程序以清晰、易于察觉的方式组合和处理具有层次结构的组件。使用这个布局管理器,您可以方便地在同一个区域内切换不同的内容。