选择和取消选择时从 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 属性

我绞尽脑汁想不通为什么你要创建一个 JLabelJPanelJTextField 的新实例,而你似乎只是想更新以前的状态