Java 入門圖形用戶界面設計之單選按鈕

Java程序設計 圖形用戶界面 【九】單選按鈕

單選按鈕 JRadioButton

JRadioButton類

方法 作用
public JRadioButton(Icon icon) 建立一個單選按鈕,並指定圖片
public JRadioButton(Icon icon,boolean selected) 建立一個單選按鈕,並指定圖片和其是否選定
public JRadioButton(String text) 建立一個單選按鈕,並指定其文字,默認不選定
public JRadioButton(String text,boolean selected) 建立一個單選按鈕,並指定文字和是否選定
public JRadioButton(String text,Icon icon,boolean selected) 建立一個單選按鈕,並指定圖片、文字和其是否選定
public void setSelected(boolean b) 設置是否選中
public boolean isSelected() 返回是否被選中
public void setText(String text) 設置顯示文本
public void setIcon(Icon defaultIcon) 設置圖片
import javax.swing.*;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

class MyRadio{
    private JFrame frame = new JFrame("一");
    private Container cont = frame.getContentPane();
    private JRadioButton jrb1 = new JRadioButton("1");
    private JRadioButton jrb2 = new JRadioButton("2");
    private JRadioButton jrb3 = new JRadioButton("3");
    private JPanel pan = new JPanel();
    public MyRadio(){
        pan.setBorder(BorderFactory.createTitledBorder("請選擇"));
        pan.setLayout(new GridLayout(1,3));
        pan.add(this.jrb1);
        pan.add(this.jrb2);
        pan.add(this.jrb3);
        ButtonGroup group = new ButtonGroup();
        group.add(this.jrb1);
        group.add(this.jrb2);
        group.add(this.jrb3);
        cont.add(pan);
        this.frame.setSize(330,80);
        this.frame.setVisible(true);
        this.frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                super.windowClosing(e);
                System.exit(1);
            }
        });
    }
}
public class Hello {
    public static void main(String[] args) {
        new MyRadio();
    }
}

image-20220213140637190

ButtonGroup group = new ButtonGroup();
group.add(this.jrb1);
group.add(this.jrb2);
group.add(this.jrb3);

將按鈕添加到同一個組中實現單選功能

JRadioButton事件處理

使用ItemListener接口進行事件的監聽

方法 作用
void itemStateChanged(ItemEvent e) 當用戶取消或選定某個選項時調用

ItemEvent類

方法&常量 類型 作用
public static final int SELECTED 常量 選項被選中
public static final int DESELECTED 常量 選項未被選中
public Object getItem() 方法 返回受事件影響的選項
public int getStateChange() 方法 返回選定狀態的類型(已選擇或已取消)
import javax.swing.*;
import java.awt.*;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

class MyRadio implements ItemListener{
    private JLabel a = new JLabel("選中");
    private JLabel b = new JLabel("未選中");
    private JFrame frame = new JFrame("一");
    private Container cont = frame.getContentPane();
    private JRadioButton jrb1 = new JRadioButton("A",true);
    private JRadioButton jrb2 = new JRadioButton("B",true);
    private JPanel pan = new JPanel();
    public MyRadio(){
        ButtonGroup group = new ButtonGroup();
        group.add(this.jrb1);
        group.add(this.jrb2);
        jrb1.addItemListener(this);
        jrb2.addItemListener(this);
        pan.setLayout(new GridLayout(1,4));
        pan.add(this.a);
        pan.add(this.jrb1);
        pan.add(this.b);
        pan.add(this.jrb2);
        this.frame.add(pan);
        this.frame.setSize(200,100);
        this.frame.setVisible(true);
        this.frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                super.windowClosing(e);
                System.exit(1);
            }
        });
    }
    @Override
    public void itemStateChanged(ItemEvent e) {
        if(e.getSource()==jrb2){
            a.setText("未選中");
            b.setText("選中");
        }else {
            b.setText("未選中");
            a.setText("選中");
        }
    }
}
public class Hello {
    public static void main(String[] args) {
        new MyRadio();
    }
}

image-20220213143404542

image-20220213143420956

到此這篇關於Java 入門圖形用戶界面設計之單選按鈕的文章就介紹到這瞭,更多相關Java 單選按鈕內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: