zoukankan      html  css  js  c++  java
  • 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);
        }
    }
    
    
  • 相关阅读:
    C# BulkCopy System.Data.SqlClient 数据库批量添加行数句
    SQL server 数据库优化表
    Bootstrap简介,特点,用法
    Entity Fromwork浅谈
    ADO,net 实体数据模型增、删、改,浅谈
    程序如何适应所有的难产客户
    访问数据库优化
    C#中哈希表(HashTable)的用法详解
    C# winform无边框窗体移动
    函数柯里化之加法add应用---add(1,2) add(1)(2) add(1)(2)(3) add(1,2,3)(4)
  • 原文地址:https://www.cnblogs.com/cloud-ken/p/14169983.html
Copyright © 2011-2022 走看看