[引言]
我們?cè)趯W(xué)習(xí)Java編程的時(shí)候旺拉,如果需要開發(fā)客戶端窗體類型的程序频轿,可以使用JDK中的awt和swing庫陨舱。本文開始小博老師就繼續(xù)為大家演示Java窗體編程中的各類控件垄惧,今天主要講解的是各類選擇型控件嘹锁。
[步驟閱讀一]單選按鈕控件JRadioButton
之前我們學(xué)習(xí)了JSwing中的文本類型控件呆盖,可以讓用戶自由輸入文本信息呢灶,但是有的時(shí)候曾雕,我們需要讓用戶提供的信息和措,并不是隨意輸入的庄呈,而是有一定的范圍讓用戶選擇,比如用戶的性別派阱、興趣愛好诬留、所在城市等等場景,此時(shí)文本類型控件就有點(diǎn)無法滿足我們的需求了贫母,因此我們需要借助選擇型控件文兑。
首先我們來了解單選按鈕控件JRadioButton,它的特點(diǎn)是可以提供多個(gè)選項(xiàng)腺劣,讓用戶在多個(gè)選項(xiàng)中選擇一項(xiàng)绿贞,需要注意的是,用戶只能選擇其中的一個(gè)選項(xiàng)橘原,如果用戶修改了選項(xiàng)籍铁,之前的選項(xiàng)則會(huì)取消選中,這個(gè)效果我們一般稱為互斥效果趾断。我們通過一個(gè)簡單的選擇性別效果來體驗(yàn)下單選按鈕控件寨辩,核心代碼如下:
publicclassControllerFrameextendsJFrame{
publicControllerFrame(){
super("博為峰教育");
setBounds(200, 100, 300, 300);
setLayout(null);
// 實(shí)例化 單選按鈕 控件
JRadioButtonrb1=newJRadioButton("男");
rb1.setBounds(20, 20, 40, 25);
add(rb1);
JRadioButtonrb2=newJRadioButton("女");
rb2.setBounds(65, 20, 40, 25);
add(rb2);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
實(shí)例化窗體并且運(yùn)行,看到窗體效果如下:
但是僅僅這樣的話歼冰,單選按鈕之間是不會(huì)出現(xiàn)互斥效果的:
用戶可以同時(shí)選中多個(gè)屬性靡狞,沒有互斥效果,這是因?yàn)檫@兩個(gè)單選按鈕控件沒有存放在同一個(gè)按鈕分組中隔嫡,我們?cè)陂_發(fā)的時(shí)候千萬要注意甸怕,需要出現(xiàn)互斥效果的單選按鈕甘穿,必須要存放到同一個(gè)按鈕分組中,在同一個(gè)按鈕分組中的單選按鈕控件梢杭,才會(huì)出現(xiàn)互斥效果温兼。我們修改代碼如下:
publicclassControllerFrameextendsJFrame{
publicControllerFrame(){
super("博為峰教育");
setBounds(200, 100, 300, 300);
setLayout(null);
// 實(shí)例化 單選按鈕 控件
JRadioButtonrb1=newJRadioButton("男");
rb1.setBounds(20, 20, 40, 25);
add(rb1);
JRadioButtonrb2=newJRadioButton("女");
rb2.setBounds(65, 20, 40, 25);
add(rb2);
// 創(chuàng)建按鈕分組
ButtonGroupgroup=newButtonGroup();
// 將單選按鈕控件添加到按鈕分組中
group.add(rb1);
group.add(rb2);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
此時(shí),單選按鈕就會(huì)出現(xiàn)互斥效果了:
[步驟閱讀二]復(fù)選框控件JCheckBox
接下來小博老師再帶領(lǐng)大家了解復(fù)選框控件JCheckBox武契,它的特點(diǎn)是可以提供多個(gè)選項(xiàng)募判,讓用戶在多個(gè)選項(xiàng)中選擇多項(xiàng),需要注意的是咒唆,用戶可以選擇其中的多個(gè)選項(xiàng)届垫。我們通過一個(gè)簡單的選擇學(xué)習(xí)課程的效果來體驗(yàn)下復(fù)選框控件,核心代碼如下:
publicclassControllerFrameextendsJFrame{
publicControllerFrame(){
super("博為峰教育");
setBounds(200, 100, 300, 300);
setLayout(null);
// 實(shí)例化 單選按鈕 控件
JCheckBoxcbx1=newJCheckBox("全棧Java課程");
cbx1.setBounds(20, 20, 150, 25);
add(cbx1);
JCheckBoxcbx2=newJCheckBox("全棧UI+Web前端課程");
cbx2.setBounds(20, 50, 150, 25);
add(cbx2);
JCheckBoxcbx3=newJCheckBox("全棧iOS課程");
cbx3.setBounds(20, 80, 150, 25);
add(cbx3);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
實(shí)例化窗體并且運(yùn)行全释,看到窗體效果如下:
[步驟閱讀三]組合框控件JComboBox
接下來小博老師再帶領(lǐng)大家了解組合框控件JComboBox装处,它的特點(diǎn)和單選按鈕控件有點(diǎn)類似,可以提供多個(gè)選項(xiàng)浸船,讓用戶在多個(gè)選項(xiàng)中選擇一項(xiàng)妄迁,但是如果提供的選項(xiàng)比較多時(shí),會(huì)占用大量界面空間李命,因此組合框控件提供的選項(xiàng)是隱藏的登淘,用戶點(diǎn)擊了下拉按鈕時(shí),選項(xiàng)才會(huì)下拉顯示出來封字,選擇完后黔州,選項(xiàng)再次收縮隱藏。我們通過一個(gè)簡單的選擇學(xué)習(xí)校區(qū)的效果來體驗(yàn)下組合框控件周叮,核心代碼如下:
publicclassControllerFrameextendsJFrame{
publicControllerFrame(){
super("博為峰教育");
setBounds(200, 100, 300, 300);
setLayout(null);
// 為組合框控件準(zhǔn)備選項(xiàng)
String[]options=newString[]{
"上海漕河涇校區(qū)",
"北京回龍觀校區(qū)",
"深圳華強(qiáng)北校區(qū)",
"南京新街口校區(qū)",
"成都航空路校區(qū)",
};
// 實(shí)例化 組合框 控件
JComboBoxcbx=newJComboBox(options);
cbx.setBounds(20, 20, 150, 25);
add(cbx);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
實(shí)例化窗體并且運(yùn)行辩撑,看到窗體效果如下: