- 1、單選按鈕也被稱爲RadioButton,他通過JRadioButton類實現,單選按鈕類似如下圖所示:
- 2、單選按鈕的構造器:
1)JRadioButton():創建一個初始化爲未選擇的單選按鈕,其文本未定義
2)JRadioButton(Icon icon):創建一個初始化爲未選擇的單選按鈕,其具有指定的圖像但無文本
3)JRadioButton(Icon icon,boolean selected)創建一個具有指定圖形和選擇狀態的單選按鈕,但無文本
4)JRadioButton(String text):創建一個具有指定文本的狀態爲未選擇的單選按鈕
5)JRadioButton(String text,boolean selected):創建一個具有指定文本和選擇狀態的單選按鈕
6)JRadioButton(String text,Icon icon):創建一個具有指定的文本和圖像並初始化爲未選擇的單選按鈕
7)JRadioButton(String text,Icon icon,boolean selected):創建一個具有指定的文本,圖像和選擇狀態的單選按鈕
下面通過代碼演示創建單選按鈕並將單選按鈕添加到內容面板中
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
public class Example04 {
static final int WIDTH=300;
static final int HEIGHT=200;
public static void main(String[] args) {
// TODO Auto-generated method stub
JFrame frame=new JFrame("測試程序");
frame.setSize(WIDTH,HEIGHT);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
JPanel pane=new JPanel();
frame.setContentPane(pane);
JRadioButton rbt1=new JRadioButton("忽略"); // 創建三個單選按鈕,並且將他們添加到內容太面板中
JRadioButton rbt2=new JRadioButton("繼續");
JRadioButton rbt3=new JRadioButton("跳過");
pane.add(rbt1);
pane.add(rbt2);
pane.add(rbt3);
}
}
上述代碼運行結果如下:
上述代碼實現的單選按鈕可以都不選或者都選中,顯然不符合實際開發過程中單選按鈕的要求,如果單線按鈕只能選擇一個,這裏需要使用到單選按鈕組的組件,下面代碼將演示開發過程中實際使用的單算按鈕
import javax.swing.ButtonGroup;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
public class Example05 {
static final int WIDTH=300;
static final int HEIGHT=200;
public static void main(String[] args) {
// TODO Auto-generated method stub
JFrame frame=new JFrame("測試程序");
frame.setSize(WIDTH,HEIGHT);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
JPanel pane=new JPanel();
frame.setContentPane(pane);
JRadioButton rbt1=new JRadioButton("忽略"); // 創建三個單選按鈕
JRadioButton rbt2=new JRadioButton("繼續");
JRadioButton rbt3=new JRadioButton("跳過");
ButtonGroup bg=new ButtonGroup(); // 新建一個按鈕組,將三個單選按鈕添加到按鈕組中
bg.add(rbt1);
bg.add(rbt2);
bg.add(rbt3);
pane.add(rbt1);
pane.add(rbt2);
pane.add(rbt3);
}
}
上述代碼運行結果如下,此時三個選項中同時只可能選擇一個,達到了開發過程中需要單選按鈕的需求
上述代碼實現了單選按鈕,三個單選按鈕同一時間只可能選擇一個,根據功能的複雜度,其實可以設置多個按鈕組,在每個按鈕組中只能選擇一個,下面代碼就演示了三個按鈕組,在每個按鈕組中只可能選擇一個選項
import javax.swing.ButtonGroup;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
public class Example06 {
static final int WIDTH=300;
static final int HEIGHT=200;
public static void main(String[] args) {
// TODO Auto-generated method stub
JFrame frame=new JFrame("測試程序");
frame.setSize(WIDTH,HEIGHT);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
JPanel pane=new JPanel();
frame.setContentPane(pane);
// 創建六個單選框,並且將他們分爲三個按鈕組
JRadioButton rbt01=new JRadioButton("羽毛球");
JRadioButton rbt02=new JRadioButton("足球");
ButtonGroup bg1=new ButtonGroup();
bg1.add(rbt01);
bg1.add(rbt02);
JRadioButton rbt11=new JRadioButton("電腦書");
JRadioButton rbt12=new JRadioButton("數學書");
ButtonGroup bg2=new ButtonGroup();
bg2.add(rbt11);
bg2.add(rbt12);
JRadioButton rbt21=new JRadioButton("電影");
JRadioButton rbt22=new JRadioButton("錄像");
ButtonGroup bg3=new ButtonGroup();
bg3.add(rbt21);
bg3.add(rbt22);
pane.add(rbt01);
pane.add(rbt02);
pane.add(rbt11);
pane.add(rbt12);
pane.add(rbt21);
pane.add(rbt22);
}
}
上述的代碼運行結果如下:
上述代碼運行的結果中可以看到,羽毛球和足球只能選擇一個,電腦書和數學書只能選擇一個,電影和錄像只能選擇一個