选择和取消选择时从 JComboBox 获取值
Getting values from JComboBox upon selection and deselection
我正在尝试显示 JComboBox 中的选定项(我确实要显示),但是当我传递 ItemListener 以查看它是否被取消选择时,另一个标签仍然显示,它只是与下一个标签重叠.这是我的代码:
ItemListener itemListener = new ItemListener() {
@Override
public void itemStateChanged(ItemEvent event) {
int state = event.getStateChange();
JPanel select = new JPanel();
JLabel label = new JLabel("Department Selected: ");
JTextField selected = new JTextField(10);
switch (state) {
case ItemEvent.SELECTED:
String selection = (String) aDpts.getSelectedItem();
selected.setEditable(false);
selected.setText(selection);
select.add(label);
select.add(selected);
break;
case ItemEvent.DESELECTED:
label.removeAll();
selected.removeAll();
select.removeAll();
break;
}
add(select, BorderLayout.LINE_END);
}
此外,它不会显示标签,除非我调整 window..
每次 itemStateChanged
更改时,您都在创建 JLabel
的新实例,因此您试图从从未添加过标签的容器中删除标签。
相反,只需创建一个 JLabel
并更新它 text
属性
我绞尽脑汁想不通为什么你要创建一个 JLabel
、JPanel
和 JTextField
的新实例,而你似乎只是想更新以前的状态
我正在尝试显示 JComboBox 中的选定项(我确实要显示),但是当我传递 ItemListener 以查看它是否被取消选择时,另一个标签仍然显示,它只是与下一个标签重叠.这是我的代码:
ItemListener itemListener = new ItemListener() {
@Override
public void itemStateChanged(ItemEvent event) {
int state = event.getStateChange();
JPanel select = new JPanel();
JLabel label = new JLabel("Department Selected: ");
JTextField selected = new JTextField(10);
switch (state) {
case ItemEvent.SELECTED:
String selection = (String) aDpts.getSelectedItem();
selected.setEditable(false);
selected.setText(selection);
select.add(label);
select.add(selected);
break;
case ItemEvent.DESELECTED:
label.removeAll();
selected.removeAll();
select.removeAll();
break;
}
add(select, BorderLayout.LINE_END);
}
此外,它不会显示标签,除非我调整 window..
每次 itemStateChanged
更改时,您都在创建 JLabel
的新实例,因此您试图从从未添加过标签的容器中删除标签。
相反,只需创建一个 JLabel
并更新它 text
属性
我绞尽脑汁想不通为什么你要创建一个 JLabel
、JPanel
和 JTextField
的新实例,而你似乎只是想更新以前的状态