Skip to content

JComboBox 常用方法示例

准备工作

java
import javax.swing.*;
import java.awt.*;

JComboBox<String> jcb = new JComboBox<>();
jcb.addItem("北京");
jcb.addItem("上海");
jcb.addItem("广州");
jcb.addItem("深圳");

1. addItem() — 添加选项

java
JComboBox<String> jcb = new JComboBox<>();
jcb.addItem("北京");
jcb.addItem("上海");
jcb.addItem("广州");

System.out.println("选项数量:" + jcb.getItemCount());
输出:
选项数量:3

2. getItemCount() — 获取选项总数

java
JComboBox<String> jcb = new JComboBox<>();
jcb.addItem("北京");
jcb.addItem("上海");
jcb.addItem("广州");

System.out.println(jcb.getItemCount());
输出:
3

3. getItemAt() — 获取指定下标的选项

java
JComboBox<String> jcb = new JComboBox<>();
jcb.addItem("北京");
jcb.addItem("上海");
jcb.addItem("广州");

System.out.println(jcb.getItemAt(0));
System.out.println(jcb.getItemAt(1));
System.out.println(jcb.getItemAt(2));
输出:
北京
上海
广州

4. getSelectedItem() — 获取当前选中项

java
JComboBox<String> jcb = new JComboBox<>();
jcb.addItem("北京");
jcb.addItem("上海");
jcb.addItem("广州");

// 默认选中第一项
System.out.println(jcb.getSelectedItem());
输出:
北京

5. getSelectedIndex() — 获取当前选中项的下标

java
JComboBox<String> jcb = new JComboBox<>();
jcb.addItem("北京");
jcb.addItem("上海");
jcb.addItem("广州");

System.out.println(jcb.getSelectedIndex());
输出:
0

6. setSelectedIndex() — 设置选中项

java
JComboBox<String> jcb = new JComboBox<>();
jcb.addItem("北京");
jcb.addItem("上海");
jcb.addItem("广州");

jcb.setSelectedIndex(2); // 选中第2项
System.out.println(jcb.getSelectedItem());
输出:
广州

7. setSelectedItem() — 按内容设置选中项

java
JComboBox<String> jcb = new JComboBox<>();
jcb.addItem("北京");
jcb.addItem("上海");
jcb.addItem("广州");

jcb.setSelectedItem("上海");
System.out.println(jcb.getSelectedIndex());
输出:
1

8. removeItem() — 删除指定选项

java
JComboBox<String> jcb = new JComboBox<>();
jcb.addItem("北京");
jcb.addItem("上海");
jcb.addItem("广州");

jcb.removeItem("上海");
System.out.println(jcb.getItemCount());
System.out.println(jcb.getItemAt(0));
System.out.println(jcb.getItemAt(1));
输出:
2
北京
广州

9. removeItemAt() — 删除指定下标的选项

java
JComboBox<String> jcb = new JComboBox<>();
jcb.addItem("北京");
jcb.addItem("上海");
jcb.addItem("广州");

jcb.removeItemAt(0); // 删除第0项
System.out.println(jcb.getItemAt(0));
输出:
上海

10. removeAllItems() — 清空所有选项

java
JComboBox<String> jcb = new JComboBox<>();
jcb.addItem("北京");
jcb.addItem("上海");
jcb.addItem("广州");

jcb.removeAllItems();
System.out.println(jcb.getItemCount());
输出:
0

11. setEditable() — 设置是否可编辑

java
JComboBox<String> jcb = new JComboBox<>();
jcb.addItem("北京");
jcb.addItem("上海");

jcb.setEditable(true); // 允许用户手动输入
System.out.println(jcb.isEditable());
输出:
true

12. setEnabled() — 设置是否可用

java
JComboBox<String> jcb = new JComboBox<>();
jcb.addItem("北京");
jcb.addItem("上海");

jcb.setEnabled(false); // 禁用下拉框,用户无法操作
System.out.println(jcb.isEnabled());
输出:
false

13. addActionListener() — 监听选项变化

java
JComboBox<String> jcb = new JComboBox<>();
jcb.addItem("北京");
jcb.addItem("上海");
jcb.addItem("广州");

jcb.addActionListener(e -> {
    String selected = (String) jcb.getSelectedItem();
    System.out.println("当前选中:" + selected);
});

// 模拟选择操作
jcb.setSelectedIndex(1);
jcb.setSelectedIndex(2);
输出:
当前选中:上海
当前选中:广州

14. 完整窗口示例

java
import javax.swing.*;
import java.awt.*;

public class Demo {
    public static void main(String[] args) {
        JFrame jf = new JFrame("JComboBox 示例");
        jf.setLayout(new FlowLayout());
        jf.setSize(300, 200);
        jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

        JComboBox<String> jcb = new JComboBox<>();
        jcb.addItem("北京");
        jcb.addItem("上海");
        jcb.addItem("广州");
        jcb.addItem("深圳");

        JLabel label = new JLabel("当前选中:北京");

        // 选项变化时更新标签
        jcb.addActionListener(e -> {
            label.setText("当前选中:" + jcb.getSelectedItem());
        });

        jf.add(jcb);
        jf.add(label);
        jf.setVisible(true);
    }
}

API 速查表

方法说明返回值
addItem(E item)添加选项void
getItemCount()获取选项总数int
getItemAt(int index)获取指定下标的选项E
getSelectedItem()获取当前选中项Object
getSelectedIndex()获取当前选中项下标int
setSelectedIndex(int index)按下标设置选中项void
setSelectedItem(Object item)按内容设置选中项void
removeItem(Object item)删除指定选项void
removeItemAt(int index)删除指定下标选项void
removeAllItems()清空所有选项void
setEditable(boolean b)设置是否可编辑void
isEditable()是否可编辑boolean
setEnabled(boolean b)设置是否可用void
isEnabled()是否可用boolean
addActionListener(...)监听选项变化void