有没有一种方法可以区分使用setSelectedBoundValue和单击JComboBox以编程方式更改JComboBox的索引?
发布于 2010-12-14 16:24:28
这是丑陋的和真正的黑客,但工作!
ActionEvent包含一个字段修饰符,在本例中是鼠标按键id。因此,使用它可以帮助您区分setSelectedIndex或setSelectedValue和鼠标单击(顺便说一句,setSelectedBoundValue不是JComboBox上的方法):
box.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (e.getModifiers() != 0) {
// ~ mouse button pressed ;)
}
}
});发布于 2010-12-14 13:56:36
setSelectedBoundValue
没听说过这种方法吗?
有没有办法区分以编程方式更改的JComboBox的索引
不怎么有意思。您可以删除监听程序:
comboBox.removeActionListener(...);
comboBox.setSelectedItem(...);
comboBox.addActionListener(...);您可以设置自己的类变量。
manualSelection = true;
comboBox.setSelectedIndex(...);
manualSelection = false;https://stackoverflow.com/questions/4436022
复制相似问题