5.布局:CardLayout卡片布局(Java swing 入门)

CardLayout(卡片布局管理器)能够帮助用户实现多个成员共享同一个显不空间,并且一次只显示一个容器组件的内容。
CardLayout 布局管理器将容器分成许多层,每层的显示空间占据整个容器的大小,但是每层只允许放置一个组件。CardLayout 的构造方法如下:

  • CardLayout():构造一个新布局,默认间隔为 0。
  • CardLayout(int hgap, int vgap):创建布局管理器,并指定组件间的水平间隔(hgap)和垂直间隔(vgap)

通过这个,我们可以实现页面路由的跳转:

package com.company;
import javax.smartcardio.Card;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Main {
    public static void main(String[] args) {
        JFrame jf = new JFrame("text");
        jf.setSize(300,200);
        JPanel jp = new JPanel(new CardLayout());//确认CardLayout布局
        JPanel jp1 = new JPanel();//卡片1
        JPanel jp2 = new JPanel();//卡片2
        JButton jb = new JButton("开始游戏");
        jp1.add(jb);
        jp2.add(new JLabel("游戏开始"));
        jp.add(jp1,"card1");
        jp.add(jp2,"card2");
        CardLayout cl = (CardLayout)(jp.getLayout());//创建一个CardLayout对象,指向jp
        cl.show(jp,"card1");//调用展示jp中的一张卡片页面
        jb.addActionListener(//加入监听
                new ActionListener() {
                    @Override
                    public void actionPerformed(ActionEvent e) {
                        cl.show(jp,"card2");//点击切换卡片2
                    }
                }
        );
        jf.add(jp);
        jf.setVisible(true);
    }
}

效果图:
card1:
在这里插入图片描述
点击按钮后跳转card2:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值