无论什么时候做出选择,我都试图让事件发生JComboBox
.
我遇到的问题是没有明显的addSelectionListener()
方法.
我试过用actionPerformed()
,但它永远不会开火.
如果没有超越模型JComboBox
,我就没有想法了.
如何获得有关选择更改的通知JComboBox
?**
编辑:我要道歉.事实证明我使用了一个行为不端的子类JComboBox
,但是我会留下问题,因为你的答案是好的.
它应该响应ActionListeners,如下所示:
combo.addActionListener (new ActionListener () { public void actionPerformed(ActionEvent e) { doSomething(); } });
@John Calsbeek正确地指出它addItemListener()
也会起作用.ItemEvents
但是,您可以获得2 ,其中一个用于取消选择先前选择的项目,另一个用于选择新项目.只是不要使用这两种事件类型!
代码ItemListener
实现示例
class ItemChangeListener implements ItemListener{ @Override public void itemStateChanged(ItemEvent event) { if (event.getStateChange() == ItemEvent.SELECTED) { Object item = event.getItem(); // do something with object } } }
现在我们只获得选定的项目.
然后只需将侦听器添加到您的JComboBox
addItemListener(new ItemChangeListener());
我会尝试itemStateChanged()
的方法ItemListener
如果jodonnell的解决方案失败接口.
这里创建一个ComboBox,为项目选择更改添加一个监听器:
JComboBox comboBox = new JComboBox(); comboBox.setBounds(84, 45, 150, 20); contentPane.add(comboBox); JComboBox comboBox_1 = new JComboBox(); comboBox_1.setBounds(84, 97, 150, 20); contentPane.add(comboBox_1); comboBox.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent arg0) { //Do Something } }); }
你可以尝试这些
int selectedIndex = myComboBox.getSelectedIndex();
-要么-
Object selectedObject = myComboBox.getSelectedItem();
-要么-
String selectedValue = myComboBox.getSelectedValue().toString();