更新時(shí)間:2022-10-27 來(lái)源:黑馬程序員 瀏覽量:
JComboBox組件被稱為下拉框或者組合框,它將所有選項(xiàng)折疊在一起,默認(rèn)顯示的是第一個(gè)添加的選項(xiàng)。當(dāng)用戶單擊下拉框時(shí),會(huì)出現(xiàn)下拉式的選擇列表,用戶可以從中選擇其中一項(xiàng)并顯示。
JComboBox下拉框組件分為可編輯和不可編輯兩種形式,對(duì)于不可編輯的下拉框,用戶只能選擇現(xiàn)有的選項(xiàng)列表。對(duì)于可編輯的下拉框,用戶既可以選擇現(xiàn)有的選項(xiàng)列表,也可以自己輸入新的內(nèi)容。需要注意的是,自己輸入的內(nèi)容只能作為當(dāng)前項(xiàng)顯示,并不會(huì)添加到下拉框的選項(xiàng)列表中。接下來(lái)列舉JComboBox類的常用構(gòu)造方法,如表所示。

在使用JComboBox下拉框組件時(shí),需要用到它的一些常用方法,如下表所示。

通過(guò)上面的兩個(gè)表簡(jiǎn)單認(rèn)識(shí)了JComboBox類的構(gòu)造方法和常用方法,接下來(lái)通過(guò)一個(gè)案例來(lái)演示該組件的基本用法,如下所示。
例Example15.java
import java.awt.*;
import javax.swing.*;
public class Examplel5 {
private static void createAndShowGUI(){
//1.創(chuàng)建一個(gè)JFrame容器窗口
JErame f=new JFrame("JErame窗口");
f.setLayout (new BorderLayout());
f.setSize(350, 200);
f.setLocation(300, 200);
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//2.創(chuàng)建一個(gè)頁(yè)頭的JPanel面板,用來(lái)封裝JComboBox下拉框組件
JPanel panel =new JPanel () ;
//2.1創(chuàng)建JComboBox下拉框組件
JComboBox<String>comboBox =new JComboBox<> ();
//2.2為下拉框添加選項(xiàng)
comboBox.addItem("請(qǐng)選擇城市");
comboBox.addItem("北京");
comboBox.addItem("天津");
comboBox.addItem("南京");
comboBox.addItem("上海");
//2.3創(chuàng)建JTextField單行文本框組件,用來(lái)展示用戶選擇項(xiàng)
JTextField textField =new JTextField (20);
//2.4為JComboBox下拉框組件注冊(cè)動(dòng)作監(jiān)聽器
comboBox.addActionListener (e –> {
String item= (String) comboBox.getSelectedItem();
if(”請(qǐng)選擇城市".equals(item)){
textField.setText("");
} else {
textField.setText("您選擇的城市是:"+item);
}
});
//2.5將JComboBox組件和JTextField組件加人JPanel面板組件中
panel.add(comboBox);
panel.add(textField);
//3.向JFrame窗口容器中加入頁(yè)頭的JPanel面板組件
f.add (panel, BorderLayout.PAGE_START) ;
}
public static void main(String[] args) {
//使用SwingUtilities工具類調(diào)用createAndShowGUI()方法并顯示GUI程序
SwingUtilities.invokeLater (Examplel5::createAndShowGUI);
}
}運(yùn)行結(jié)果如下:


首先使用JFrame頂級(jí)容器創(chuàng)建并設(shè)置了一個(gè)容器窗口,同時(shí)通過(guò)BorderLayout 布局管理器進(jìn)行設(shè)置,在容器頁(yè)頭加入了一個(gè)JPanel 面板組件。其中,在anel 面板組件中分別封裝了一個(gè)JComboBox下拉框組件和一個(gè)JTextField文本框組件,并為JComboBox組件注冊(cè)了動(dòng)作監(jiān)聽器。