• java Swing GUI 入门-切换布局


    java Swing GUI 入门-切换布局

    觉得有用的话,欢迎一起讨论相互学习~

    我的微博我的github我的B站

    布局

    1. 通过按钮切换Panel
    2. Panel的叠加
    • 布局,并向底部的ParentPanel中添加三个同等大小的panel相互叠加在一起.并且具有不同的颜色.

    添加事件

    • 向Button1中添加按钮事件以只显示panel1
            card1button.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    parentPanel.removeAll();
                    parentPanel.add(card1Panel);
                    parentPanel.repaint();
                    parentPanel.revalidate();
                }
            });
        }
    
    • 向Button2中添加按钮事件以只显示panel2
    • 向Button2中添加按钮事件以只显示panel3
            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();
                }
            });
    

    效果演示

    完整代码

    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);
        }
    }
    
    
  • 相关阅读:
    小白们应该知道,在Eclipse当中怎样在编译页面当中显示行号.
    严重:Parse error in application web.xml file at jndi:/localhost/day_29/WEB-INF/web.xml解决办法
    linux 系统下,忘记密码的快捷解决方法。
    eclipse 当中,修改文本编辑框的字体大小
    如何在linux当中,大量的添加用户
    04文件操作1
    03python面向对象编程之多态和枚举6
    03python面向对象编程5
    03python面向对象编程4
    03python面向对象编程2
  • 原文地址:https://www.cnblogs.com/cloud-ken/p/14169983.html
Copyright © 2020-2023  润新知