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