一、创建
// 选项的内容
String[] tpyes = {"顾客","送餐员","餐厅员工","菜单管理员"};
JComboBox box_type = new JComboBox(tpyes);
默认选中并显示第一个
点开后
二、得到选中后的状态
1.结论
// 选项的内容
String[] tpyes = {"顾客","送餐员","餐厅员工","菜单管理员"};
JComboBox box_type = new JComboBox(tpyes);
// 得到选中后的状态,必须初始化为第一个默认状态。
String submission_type = "顾客";
// 重写接口
box_type.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
// 当选中项该变时
submission_type = e.getItem().toString();
}
});
注意:这个方法itemStateChanged
只在选中其他项时生效,哪怕进去选中第一个项,这还是没有发生改变。只有选中了其他项才会进入这个方法(你先选中其他项,再选第一个项,这样是改变了两次)。
2.错例
(1)不重写接口
String[] tpyes = {"顾客","送餐员","餐厅员工","菜单管理员"};
JComboBox box_type = new JComboBox(tpyes);
String submission_type = box_type.getSelectedItem().toString();
不能直接这样,这是静态的,当你选中了其他的选项后,得到的submission_type
还是默认选中的第一个。
(2)写接口忽略第一个
// 选项的内容
String[] tpyes = {"顾客","送餐员","餐厅员工","菜单管理员"};
JComboBox box_type = new JComboBox(tpyes);
// 得到选中后的状态,必须初始化为第一个默认状态。
String submission_type;
// 重写接口
box_type.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
// 当选中项改变时才会生效
submission_type = e.getItem().toString();
}
});
如果不更改默认项时,submission_type
就是null
。