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());输出:
选项数量:32. getItemCount() — 获取选项总数
java
JComboBox<String> jcb = new JComboBox<>();
jcb.addItem("北京");
jcb.addItem("上海");
jcb.addItem("广州");
System.out.println(jcb.getItemCount());输出:
33. 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());输出:
06. 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());输出:
18. 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());输出:
011. setEditable() — 设置是否可编辑
java
JComboBox<String> jcb = new JComboBox<>();
jcb.addItem("北京");
jcb.addItem("上海");
jcb.setEditable(true); // 允许用户手动输入
System.out.println(jcb.isEditable());输出:
true12. setEnabled() — 设置是否可用
java
JComboBox<String> jcb = new JComboBox<>();
jcb.addItem("北京");
jcb.addItem("上海");
jcb.setEnabled(false); // 禁用下拉框,用户无法操作
System.out.println(jcb.isEnabled());输出:
false13. 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 |
