單選按鈕與複選框類似都有兩種狀態,不同的是一組單選按鈕中只能有一個處於選中狀態。Swing 中 JRadioButton 類實現單選按鈕,它與 JCheckBox 一樣都是從 JToggleButton 類派生出來的。JRadioButton 通常位於一個 ButtonGroup 按鈕組中,不在按鈕組中的 JRadioButton 也就失去了單選按鈕的意義。
在同一個 ButtonGroup 按鈕組中的單選按鈕,只能有一個單選按鈕被選中。因此,如果創建的多個單選按鈕其初始狀態都是選中狀態,則最先加入 ButtonGroup 按鈕組的單選按鈕的選中狀態被保留,其後加入到 ButtonGroup 按鈕組中的其他單選按鈕的選中狀態被取消。
JRadioButton 類的常用構造方法如下。
- JRadioButton():創建一個初始化爲未選擇的單選按鈕,其文本未設定。
- JRadioButton(Icon icon):創建一個初始化爲未選擇的單選按鈕,其具有指定的圖像但無文本。
- JRadioButton(Icon icon,boolean selected):創建一個具有指定圖像和選擇狀態的單選按鈕,但無文本。
- JRadioButton(String text):創建一個具有指定文本但未選擇的單選按鈕。
- JRadioButton(String text,boolean selected):創建一個具有指定文本和選擇狀態的單選按鈕。
- JRadioButton(String text,Icon icon):創建一個具有指定的文本和圖像並初始化爲未選擇的單選按鈕。
- JRadioButton(String text,Icon icon,boolean selected):創建一個具有指定的文本、圖像和選擇狀態的單選按鈕。
例 1
使用 JFrame 組件創建一個窗口,然後使用 JRadioButton 類創建一個選擇季節的單選按鈕組。實現代碼如下:
import java.awt.Font;
import javax.swing.ButtonGroup;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
public class JRadioButtonDemo
{
public static void main(String[] agrs)
{
JFrame frame=new JFrame("Java單選組件示例"); //創建Frame窗口
JPanel panel=new JPanel(); //創建面板
JLabel label1=new JLabel("現在是哪個季節:");
JRadioButton rb1=new JRadioButton("春天"); //創建JRadioButton對象
JRadioButton rb2=new JRadioButton("夏天"); //創建JRadioButton對象
JRadioButton rb3=new JRadioButton("秋天",true); //創建JRadioButton對象
JRadioButton rb4=new JRadioButton("冬天"); //創建JRadioButton對象
label1.setFont(new Font("楷體",Font.BOLD,16)); //修改字體樣式
ButtonGroup group=new ButtonGroup();
//添加JRadioButton到ButtonGroup中
group.add(rb1);
group.add(rb2);
panel.add(label1);
panel.add(rb1);
panel.add(rb2);
panel.add(rb3);
panel.add(rb4);
frame.add(panel);
frame.setBounds(300, 200, 400, 100);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
在上述程序中創建了 4 個 JRadioButton 單選按鈕,並將這 4 個單選按鈕添加到 ButtonGroup 組件中。該程序的運行結果如圖:
謝謝觀看