1. 程式人生 > 實用技巧 >java Swing GUI 入門-切換佈局

java Swing GUI 入門-切換佈局

java Swing GUI 入門-切換佈局

覺得有用的話,歡迎一起討論相互學習~

佈局

  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);
    }
}