JComboBox 选择更改侦听器?
-
09-06-2019 - |
题
我试图让一个事件在做出选择时触发 JComboBox
.
我遇到的问题是没有明显的 addSelectionListener()
方法。
我尝试过使用 actionPerformed()
, ,但它永远不会点火。
缺少覆盖模型 JComboBox
, ,我没主意了。
我如何收到有关选择更改的通知 JComboBox
?**
编辑: 我必须道歉。事实证明我使用的是一个行为不当的子类 JComboBox
, ,但我会留下这个问题,因为你的回答很好。
其他提示
代码示例 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 的解决方案失败,则接口。
这是创建一个组合框,添加一个监听器来更改项目选择:
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();
我最近正在寻找这个完全相同的解决方案,并设法找到一个简单的解决方案,而无需为最后选定的项目和新选定的项目分配特定变量。这个问题虽然很有帮助,但没有提供我需要的解决方案。这解决了我的问题,我希望它能解决您和其他人的问题。谢谢。
不隶属于 StackOverflow