Swing布局管理器--CardLayout(卡片布局管理器)
CardLayout布局管理器CardLayout(卡片布局管理器)能够帮助用户实现多个成员共享同一个显示空间,并且一次只显示一个容器组件的内容CardLayout布局管理器将容器分为很多层,每层的显示空间占据整个容器的大小,但是每层只允许放置一个容器的大小CardLayout构造方法CardLayout():构造一个新布局,默认间隔为0CardLayout(int hgap,in...
·
CardLayout布局管理器
- CardLayout(卡片布局管理器)能够帮助用户实现多个成员共享同一个显示空间,并且一次只显示一个容器组件的内容
- CardLayout布局管理器将容器分为很多层,每层的显示空间占据整个容器的大小,但是每层只允许放置一个容器的大小
CardLayout构造方法
- CardLayout():构造一个新布局,默认间隔为0
- CardLayout(int hgap,int vgap):创建布局管理器,并指定组件的水平间隔(hgap)和垂直间隔(vgap)
CardLayout方法
- void first(Container parent):显示parent容器的第一张卡片
- void last(Container parent):显示parent容器的最后一张卡片
- void previous(Container parent):显示parent容器的上一张卡片
- void next(Container parent):显示parent容器的下一张卡片
- void show(Container parent,String name):显示parent容器中名称为name的卡片,如果不存在,则不会发生任何操作
- 卡片布局是连接的,当在最后一个面板使用next方法会返回到第一个,同理。在第一个面板使用previous会显示最后一个面板
Demo
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class DemoCardLayout {
public static void main(String[] args) {
JFrame jFrame = new JFrame("CardLayout窗体");
Container container = jFrame.getContentPane();
JButton button1 = new JButton("上一个");
JButton button2 = new JButton("第2个");
JButton button3 = new JButton("下一个");
CardLayout cardLayout = new CardLayout();
//用于显示
JPanel jPanel = new JPanel();
JPanel jPanelButton = new JPanel();
//设置显示面板布局为卡片布局
jPanel.setLayout(cardLayout);
//设置按钮面板背景色
jPanelButton.setBackground(Color.DARK_GRAY);
//设置显示面板和按钮面板的布局位置
container.add(jPanel,BorderLayout.CENTER);
container.add(jPanelButton,BorderLayout.SOUTH);
//把按钮组件放进 jPanelButton面板
jPanelButton.add(button1);
jPanelButton.add(button2);
jPanelButton.add(button3);
//创建用于显示的面板
JPanel jPanel1 = new JPanel();
JPanel jPanel2 = new JPanel();
JPanel jPanel3 = new JPanel();
//在每个字面板插入标签
jPanel1.add(new JLabel("第一个card"));
jPanel2.add(new JLabel("第二个card"));
jPanel3.add(new JLabel("第三个card"));
//把三个字面板组件放进显示面板
jPanel.add(jPanel1,"1");
jPanel.add(jPanel2,"2");
jPanel.add(jPanel3,"3");
//设置显示面板布局为卡片布局
button1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
cardLayout.previous(jPanel);
}
});
button2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
cardLayout.show(jPanel,"2");
}
});
button3.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
cardLayout.next(jPanel);
}
});
jFrame.setSize(400,400);
jFrame.setVisible(true);
jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
}
点击下一个
点击上一个
点击第2个
更多推荐
已为社区贡献1条内容
所有评论(0)