检查组合框中的所选项是否已更改为java

时间:2013-03-03 14:07:15

标签: java

在我的程序中,我有几个JComboBox,它们显示了自行车的不同属性。我目前设置它,以便用户可以单击名为saveBike的按钮并将属性保存到RandomAccessFile。我为这个按钮创建了自己的监听器并将其添加到JButton中。我的所有监听器都打开了一个JFileChooser并允许用户使用他们选择的名称保存文件。我希望我的程序要做的是在用户使用给定名称保存属性之后,我希望禁用saveBike以便用户无法继续单击它。但是,如果用户通过选择ComboBox中不同的内容来更改其中一个属性,我希望再次启用saveBike。我以为我可以将此代码放在监听器中,但我不知道如何查看是否在组合框中选择了一个项目。我的问题是,有没有办法看看是否选择了组合框中的新项目。

1 个答案:

答案 0 :(得分:0)

此示例说明如何使用ItemListener检查项目何时被选中,如果是,则启用按钮。

public static void main(String[] args) 
    {
            //elements to be shown in the combo box
        String course[] = {"", "A", "B", "C"};

        JFrame frame = new JFrame("Creating a JComboBox Component");
        JPanel panel = new JPanel();

        JComboBox combo = new JComboBox(course);

        final JButton button = new JButton("Save");
        panel.add(combo);
        panel.add(button);

            //disables the button at the start
        button.setEnabled(false);
        frame.add(panel);

        combo.addItemListener(new ItemListener() {
            public void itemStateChanged(ItemEvent ie) {
                            //enables the button when an item is selected
                button.setEnabled(true);
            }
        });

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(400, 400);
        frame.setVisible(true);
    }