[引言]前端
咱們在學習Java編程的時候,若是須要開發客戶端窗體類型的程序,可使用JDK中的awt和swing庫。本文開始小博老師就繼續爲你們演示Java窗體編程中的各種控件,今天主要講解的是各種選擇型控件。編程
[步驟閱讀一]單選按鈕控件JRadioButton學習
以前咱們學習了JSwing中的文本類型控件,可讓用戶自由輸入文本信息,可是有的時候,咱們須要讓用戶提供的信息,並非隨意輸入的,而是有必定的範圍讓用戶選擇,好比用戶的性別、興趣愛好、所在城市等等場景,此時文本類型控件就有點沒法知足咱們的需求了,所以咱們須要藉助選擇型控件。code
首先咱們來了解單選按鈕控件JRadioButton,它的特色是能夠提供多個選項,讓用戶在多個選項中選擇一項,須要注意的是,用戶只能選擇其中的一個選項,若是用戶修改了選項,以前的選項則會取消選中,這個效果咱們通常稱爲互斥效果。咱們經過一個簡單的選擇性別效果來體驗下單選按鈕控件,核心代碼以下:blog
public class ControllerFrame extends JFrame{ip
public ControllerFrame(){開發
super("博爲峯教育");get
setBounds(200, 100, 300, 300);io
setLayout(null);class
// 實例化 單選按鈕 控件
JRadioButton rb1 = new JRadioButton("男");
rb1.setBounds(20, 20, 40, 25);
add(rb1);
JRadioButton rb2 = new JRadioButton("女");
rb2.setBounds(65, 20, 40, 25);
add(rb2);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
實例化窗體而且運行,看到窗體效果以下:
可是僅僅這樣的話,單選按鈕之間是不會出現互斥效果的:
用戶能夠同時選中多個屬性,沒有互斥效果,這是由於這兩個單選按鈕控件沒有存放在同一個按鈕分組中,咱們在開發的時候千萬要注意,須要出現互斥效果的單選按鈕,必需要存放到同一個按鈕分組中,在同一個按鈕分組中的單選按鈕控件,纔會出現互斥效果。咱們修改代碼以下:
public class ControllerFrame extends JFrame{
public ControllerFrame(){
super("博爲峯教育");
setBounds(200, 100, 300, 300);
setLayout(null);
// 實例化 單選按鈕 控件
JRadioButton rb1 = new JRadioButton("男");
rb1.setBounds(20, 20, 40, 25);
add(rb1);
JRadioButton rb2 = new JRadioButton("女");
rb2.setBounds(65, 20, 40, 25);
add(rb2);
// 建立按鈕分組
ButtonGroup group = new ButtonGroup();
// 將單選按鈕控件添加到按鈕分組中
group.add(rb1);
group.add(rb2);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
此時,單選按鈕就會出現互斥效果了:
[步驟閱讀二]複選框控件JCheckBox
接下來小博老師再帶領你們瞭解複選框控件JCheckBox,它的特色是能夠提供多個選項,讓用戶在多個選項中選擇多項,須要注意的是,用戶能夠選擇其中的多個選項。咱們經過一個簡單的選擇學習課程的效果來體驗下複選框控件,核心代碼以下:
public class ControllerFrame extends JFrame{
public ControllerFrame(){
super("博爲峯教育");
setBounds(200, 100, 300, 300);
setLayout(null);
// 實例化 單選按鈕 控件
JCheckBox cbx1 = new JCheckBox("全棧Java課程");
cbx1.setBounds(20, 20, 150, 25);
add(cbx1);
JCheckBox cbx2 = new JCheckBox("全棧UI+Web前端課程");
cbx2.setBounds(20, 50, 150, 25);
add(cbx2);
JCheckBox cbx3 = new JCheckBox("全棧iOS課程");
cbx3.setBounds(20, 80, 150, 25);
add(cbx3);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
實例化窗體而且運行,看到窗體效果以下:
[步驟閱讀三]組合框控件JComboBox
接下來小博老師再帶領你們瞭解組合框控件JComboBox,它的特色和單選按鈕控件有點相似,能夠提供多個選項,讓用戶在多個選項中選擇一項,可是若是提供的選項比較多時,會佔用大量界面空間,所以組合框控件提供的選項是隱藏的,用戶點擊了下拉按鈕時,選項纔會下拉顯示出來,選擇完後,選項再次收縮隱藏。咱們經過一個簡單的選擇學習校區的效果來體驗下組合框控件,核心代碼以下:
public class ControllerFrame extends JFrame{
public ControllerFrame(){
super("博爲峯教育");
setBounds(200, 100, 300, 300);
setLayout(null);
// 爲組合框控件準備選項
String[] options = new String[]{
"上海漕河涇校區",
"北京回龍觀校區",
"深圳華強北校區",
"南京新街口校區",
"成都航空路校區",
};
// 實例化 組合框 控件
JComboBox cbx = new JComboBox(options);
cbx.setBounds(20, 20, 150, 25);
add(cbx);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
實例化窗體而且運行,看到窗體效果以下: