首页 > 编程笔记 > Java笔记 阅读:15

Java Swing JComboBox下拉列表框的用法(附带实例)

Swing 中提供两种列表组件,分别为下拉列表框(JComboBox)与列表框(JList)。下拉列表框与列表框都是带有一系列列表项的组件,用户可以从中选择需要的列表项。本节将详细讲解下拉列表框的使用。

初次使用 Swing 中的下拉列表框时,会感觉到 Swing 中的下拉列表框与 Windows 操作系统中的下拉列表框有一些相似,实质上二者并不完全相同,因为 Swing 中的下拉列表框不仅可以供用户从中选择列表项,也提供编辑列表项的功能。

下拉列表框是一个条状的显示区,它具有下拉功能,在下拉列表框的右侧存在一个倒三角形的按钮,当用户单击该按钮时,下拉列表框中的项目将会以列表的形式显示出来。

下拉列表框组件由 JComboBox 对象表示,JComboBox 类是 javax.swing.JComponent 类的子类。

JComboBox 类的常用构造方法如下:
JComboBox 类的常用方法及其说明如下表所示:

表:JComboBox 类的常用方法及其说明
方法 说明
addItem(Object anObject) 为项列表添加项
getItemCount() 返回列表中的项数
getSelectedItem() 返回当前所选项
getSelectedIndex() 返回列表中与给定项匹配的第一个选项
removeItem(Object anObject) 从列表中移除项
setEditable(boolean aFlag) 确定 JComboBox 中的字段是否可被编辑,参数被设置为 true,表示可以编辑,否则不能编辑

【实例】在下拉列表框中显示用户的所选内容。创建 JComboBoxTest 类,并继承 JFrame 类,窗体中有一个包含多个列表项的下拉列表框,当单击“确定”按钮时,把被选中的列表项显示在标签上。
import java.awt.event.*;
import javax.swing.*;

public class JComboBoxTest extends JFrame {
    public JComboBoxTest() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setTitle("下拉列表框的使用");
        setBounds(100, 100, 317, 147); // 设置绝对布局
        getContentPane().setLayout(null);

        JLabel lblNewLabel = new JLabel("请选择证件:");
        lblNewLabel.setBounds(28, 14, 80, 15);
        getContentPane().add(lblNewLabel);

        JComboBox<String> comboBox = new JComboBox<>(); // 创建一个下拉列表框
        comboBox.setBounds(110, 11, 80, 21); // 设置坐标
        comboBox.addItem("身份证"); // 为下拉列表中添加项
        comboBox.addItem("军人证");
        comboBox.addItem("学生证");
        comboBox.addItem("工作证");
        comboBox.setEditable(true); // 设置下拉列表可编辑
        getContentPane().add(comboBox); // 将下拉列表添加到容器中

        JLabel lblResult = new JLabel("");
        lblResult.setBounds(0, 57, 146, 15);
        getContentPane().add(lblResult);

        JButton btnNewButton = new JButton("确定");
        btnNewButton.setBounds(200, 10, 67, 23);
        getContentPane().add(btnNewButton);

        btnNewButton.addActionListener(new ActionListener() { // 为按钮添加监听事件
            @Override
            public void actionPerformed(ActionEvent arg0) {
                // 获取下拉列表中的选中项
                lblResult.setText("您选择的是:" + comboBox.getSelectedItem());
            }
        });
    }

    public static void main(String[] args) {
        JComboBoxTest frame = new JComboBoxTest(); // 创建窗体对象
        frame.setVisible(true); // 使窗体可见
    }
}
运行结果如下图所示:

相关文章