按鈕組件

《零基礎學Java》


  • 按鈕組件

按鈕在Swing中是比較常用的組件,用於觸發特定動作。Swing中提供多種按鈕組件,如按鈕、單選按鈕、複選框等(這些按鈕都是從AbstractButton類中繼承而來的)。

  • JButton按鈕組件

    Swing中按鈕由JButton 對象表示。

    JButton按鈕組件 常用的構造方法

    構造方法 介紹
    public JButton(); 創建一個沒有文本和圖標的按鈕。
    public JButton(text); 創建一個帶文本的按鈕。
    public JButton(icon); 創建一個帶圖標的文本。
    public JButton(text , icon); 創建一個帶文本、圖標的按鈕。

    Button按鈕組件 實例

    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.ActionEvent;
    
    public class Demo12 extends JFrame {
        public Demo12(){
            setBounds(100,100,500,300);
            setDefaultCloseOperation(EXIT_ON_CLOSE);
    
            Container c = getContentPane();
            c.setLayout(new GridLayout(3,2,5,5));
    
            JButton btn[] = new JButton[6];
            for (int i =0;i<btn.length;i++){
                btn[i]=new JButton();
                c.add(btn[i]);
            }
    
            btn[0].setText("不可用");//設置文本
            btn[0].setEnabled(false);//設置按鈕為不可用
    
            btn[1].setText("有背景色");
            btn[1].setBackground(Color.cyan);//設置按鈕的顏色
    
            btn[2].setText("無邊框");
            btn[2].setBorderPainted(false);//設置按鈕為無邊框
    
            btn[3].setText("有邊框");
            btn[3].setBorder(BorderFactory.createLineBorder(Color.red));//設置按鈕為紅色的線邊框
    
            Icon icon = new ImageIcon("src/1.PNG");
            btn[4].setIcon(icon);//設置按鈕為圖片
            btn[4].setToolTipText("圖片按鈕");//設置按鈕的懸停提示
    
            btn[5].setText("可點擊");
            btn[5].addActionListener(new AbstractAction() {//添加按鈕事件監聽
                @Override
                public void actionPerformed(ActionEvent e) {//監聽觸發的方法
                    JOptionPane.showMessageDialog(Demo12.this,"點擊按鈕");//彈出一個小對話框
                }
            });
    
    
            setVisible(true);
        }
    
        public static void main(String[] args) {
            new Demo12();
        }
    }
    

    Button按鈕組件 實例輸出結果:

  • JRadioButton 單選按鈕組件

    默認情況下,單選按鈕(JRadioButton)顯示個圓形圖標,並且通常在該圖標旁顯示說明性文字。在應用程序中,一般將多個單選按鈕放置在按鈕組中,使這些單選按鈕實現某種功能,當用戶選中某個單選按鈕後,按鈕組中其他按鈕將自動取消。

    單選按鈕

    常用的構造方法

    構造方法 說明
    public JRadioButton(); 創建一個未選中、沒有文本的單選按鈕
    public JRadioButton(icon); 創建一個有指定圖像、未選中、沒有文本的單選按鈕
    public JRadioButton(icon , selected); 創建一個有指定圖像、有選中狀態、沒有文本的單選按鈕
    public JRadioButton(text); 創建一個有文本、未選中的單選按鈕
    public JRadioButton(text , icon); 創建一個有文本、有指定圖像、未選中的單選按鈕
    public JRadioButton(text , icon , selected); 創建一個有文本、有指定圖像、有選中狀態的單選按鈕

    按鈕組

    在Swing中存在一個ButtonGroup按鈕組類,該類可以將多個單選按鈕綁定在一起,實現「選項有很多,但只能選中一個的效果。實例化ButtonGroup對象之後可以使用add()方法將多個單選按鈕添加到按鈕組中。

    JRadioButton 單選按鈕組件 實例

    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.ActionEvent;
    
    public class Demo13 extends JFrame {
        public Demo13(){
            setBounds(100,100,180,110);
            setDefaultCloseOperation(EXIT_ON_CLOSE);
    
            Container c = getContentPane();
            c.setLayout(new FlowLayout());
    
            JRadioButton jr1 = new JRadioButton("向左");//創建單選按鈕組件
            JRadioButton jr2 = new JRadioButton("向右");
            c.add(jr1);
            c.add(jr2);
    
            ButtonGroup group = new ButtonGroup();//創建按鈕組
            group.add(jr1);
            group.add(jr2);
    
            jr1.setSelected(true);//設置默認選中
    
            JButton jbn = new JButton("打印");
            jbn.addActionListener(new AbstractAction() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    System.out.println(jr1.getText()+"按鈕選中狀態"+jr1.isSelected());//在控制台輸出按鈕的選中狀態
                    System.out.println(jr2.getText()+"按鈕選中狀態"+jr2.isSelected());
                    group.clearSelection();//清空按鈕組的選項
                }
            });
            c.add(jbn);
    
            setVisible(true);
        }
    
        public static void main(String[] args) {
            new Demo13();
        }
    }
    
    

    JRadioButton 單選按鈕組件 實例輸出結果:

  • JCheckBox複選框組件

    複選框(JCheckBox)在Swing組件中的使用非常廣泛,它具有一個方塊圖標,外加一段描述性文字。與單選按鈕唯一不同的是,複選框可以進行多選操作,每一個複選框都提供 「選中」 與 「不選中」 兩種狀態。複選框用JCheckBox類的對象表示。

    JCheckBox複選框組件 常用的構造方法

    構造方法 說明
    public JCheckBox(); 構造一個無文本、無圖標、未被選中的複選框
    public JCheckBox(icon , checked); 構造有個有圖標、被選中的複選框
    public JCheckBox(text , checked); 構造有個有文本、被選中的複選框

    JCheckBox複選框組件 實例

    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.ActionEvent;
    
    public class Demo14 extends JFrame {
        public Demo14(){
            setBounds(100,100,190,120);
            setDefaultCloseOperation(EXIT_ON_CLOSE);
    
            Container c = getContentPane();
            c.setLayout(new FlowLayout());
    
            JCheckBox c1 = new JCheckBox("1");//創建複選框組件
            JCheckBox c2 = new JCheckBox("2");
            JCheckBox c3 = new JCheckBox("3");
    
            c.add(c1);
            c.add(c2);
            c.add(c3);
    
            c1.setSelected(true);//設置默認選中狀態
    
            JButton btn = new JButton("打印");
            btn.addActionListener(new AbstractAction() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    System.out.println(c1.getText()+"複選框選中狀態:"+c1.isSelected());//獲取複選框選中的狀態
                    System.out.println(c2.getText()+"複選框選中狀態:"+c2.isSelected());
                    System.out.println(c3.getText()+"複選框選中狀態:"+c3.isSelected());
                }
            });
    
            c.add(btn);
    
            setVisible(true);
        }
    
        public static void main(String[] args) {
            new Demo14();
        }
    }
    

    JCheckBox複選框組件 實例輸出結果: