学科分类
目录
Java基础

下拉框组件

JComboBox组件被称为下拉框或者组合框,它将所有选项折叠在一起,默认显示的是第一个添加的选项。当用户单击下拉框时,会出现下拉式的选择列表,用户可以从中选择其中一项并显示。

JComboBox下拉框组件分为可编辑和不可编辑两种形式,对于不可编辑的下拉框,用户只能选择现有的选项列表;对于可编辑的下拉框,用户既可以选择现有的选项列表,也可以自己输入新的内容。需要注意的是,自己输入的内容只能作为当前项显示,并不会添加到下拉框的选项列表中。接下来列举一下JComboBox类的常用构造方法,如表1所示。

表1 JComboBox常用构造方法

方法声明 功能描述
JComboBox() 创建一个没有可选项的下拉框
JComboBox(Object[] items) 创建一个下拉框,将Object数组中的元素作为下拉框的下拉列表选项
JComboBox(Vector items) 创建一个下拉框,将Vector集合中的元素作为下拉框的下拉列表选项

在使用JComboBox下拉框组件时,需要用到它的一些常用方法,如表2所示。

表2 JComboBox常用方法

方法声明 功能描述
void addItem(Object anObject) 为下拉框添加选项
void insertItemAt(Object anObject,int index) 在指定的索引处插入选项
Objct getItemAt(int index) 返回指定索引处选项,第一个选项的索引为0
int getItemCount() 返回下拉框中选项的数目
Object getSelectedItem() 返回当前所选项
void removeAllItems() 删除下拉框中所有的选项
void removeItem(Object object) 从下拉框中删除指定选项
void removeItemAt(int index) 移除指定索引处的选项
void setEditable(boolean aFlag) 设置下拉框的选项是否可编辑,aFlag为true则可编辑,反之则不可编辑

通过上面的两个表简单认识了JComboBox类的构造方法和常用方法,接下来通过一个案例来演示一下该组件的基本用法,如文件1所示。

文件1 Example15.java

 1    import java.awt.*;
 2    import javax.swing.*;
 3    public class Example15 {
 4        private static void createAndShowGUI() {
 5            // 1、创建一个JFrame容器窗口
 6            JFrame f = new JFrame("JFrame窗口");
 7            f.setLayout(new BorderLayout());
 8            f.setSize(350, 200);
 9            f.setLocation(300, 200);
 10            f.setVisible(true);
 11            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 12            // 2、创建一个页头的JPanel面板,用来封装JComboBox下拉框组件
 13            JPanel panel = new JPanel();
 14            // 2.1、创建JComboBox下拉框组件
 15            JComboBox<String> comboBox = new JComboBox<>();
 16            // 2.2、为下拉框添加选项
 17            comboBox.addItem("请选择城市");
 18            comboBox.addItem("北京");
 19            comboBox.addItem("天津");
 20            comboBox.addItem("南京");
 21            comboBox.addItem("上海");
 22            // 2.3、创建JTextField单行文本框组件,用来展示用户选择项
 23            JTextField textField = new JTextField(20);
 24            // 2.4、为JComboBox下拉框组件注册动作监听器
 25            comboBox.addActionListener(e -> {
 26                String item = (String) comboBox.getSelectedItem();
 27                if ("请选择城市".equals(item)) {
 28                    textField.setText("");
 29                } else {
 30                    textField.setText("您选择的城市是:" + item);
 31                }
 32            });
 33            // 2.5、将JComboBox组件和JTextField组件加入JPanel面板组件中
 34            panel.add(comboBox); 
 35            panel.add(textField); 
 36            // 4、向JFrame窗口容器中加入页头的JPanel面板组件
 37            f.add(panel, BorderLayout.PAGE_START);
 38        }
 39        public static void main(String[] args) {
 40            // 使用SwingUtilities工具类调用createAndShowGUI()方法并显示GUI程序
 41            SwingUtilities.invokeLater(Example15::createAndShowGUI);
 42        }
 43    }

运行结果如图1所示。

图1 运行结果

在文件1中,首先使用JFrame顶级容器创建并设置了一个容器窗口,同时通过BorderLayout布局管理器进行设置,在容器页头加入了一个JPanel面板组件。其中,在JPanel面板组件中分别封装了一个JComboBox下拉框组件和一个JTextField文本框组件,并为JComboBox组件注册了动作监听器。

点击此处
隐藏目录