前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java Swing GUI 入门-切换布局

java Swing GUI 入门-切换布局

作者头像
演化计算与人工智能
发布2021-01-04 12:48:45
1.2K0
发布2021-01-04 12:48:45
举报

  • 视频教程地址:https://www.bilibili.com/video/BV1Kt4y1k7o7/

布局

  • 大部分和上一节: https://xuzhiwei.blog.csdn.net/article/details/111498257 的内容一致,新加入的内容有
  1. 通过按钮切换Panel
  2. Panel的叠加
  • 布局,并向底部的ParentPanel中添加三个同等大小的panel相互叠加在一起.并且具有不同的颜色.

添加事件

  • 向Button1中添加按钮事件以只显示panel1
代码语言:javascript
复制
        card1button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                parentPanel.removeAll();
                parentPanel.add(card1Panel);
                parentPanel.repaint();
                parentPanel.revalidate();
            }
        });
    }
  • 向Button2中添加按钮事件以只显示panel2
  • 向Button2中添加按钮事件以只显示panel3
代码语言:javascript
复制
        card2Button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                parentPanel.removeAll();
                parentPanel.add(card2Panel);
                parentPanel.repaint();
                parentPanel.revalidate();

            }
        });
        card3Button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                parentPanel.removeAll();
                parentPanel.add(card3Panel);
                parentPanel.repaint();
                parentPanel.revalidate();
            }
        });

效果演示

完整代码

代码语言:javascript
复制
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class CardLayout {
    private JPanel mainPanel;
    private JPanel buttonPanel;
    private JButton card1button;
    private JButton card2Button;
    private JButton card3Button;
    private JPanel card1Panel;
    private JPanel card2Panel;
    private JPanel parentPanel;
    private JPanel card3Panel;
    private JCheckBox checkBox1;
    private JRadioButton radioButton1;
    private JButton button1;

    public CardLayout() {
        card1button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                parentPanel.removeAll();
                parentPanel.add(card1Panel);
                parentPanel.repaint();
                parentPanel.revalidate();
            }
        });
        card2Button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                parentPanel.removeAll();
                parentPanel.add(card2Panel);
                parentPanel.repaint();
                parentPanel.revalidate();

            }
        });
        card3Button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                parentPanel.removeAll();
                parentPanel.add(card3Panel);
                parentPanel.repaint();
                parentPanel.revalidate();
            }
        });
    }

    public static void main(String[] args) {
        JFrame frame = new JFrame("Card Layout");
        frame.setContentPane(new CardLayout().mainPanel);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setVisible(true);
    }
}

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-12-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DrawSky 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 布局
  • 添加事件
  • 效果演示
  • 完整代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档