下面的代码显示了我在使用组合操作时遇到的问题。getSelectedItem() 被多次触发,而不仅仅是在选择时触发。只需加载框架调用该方法 3 次。每次单击组合框都是一次调用,即使它只是用于下拉菜单而不是实际选择。在可编辑文本区域内单击也会触发 getSelectedItem() 方法。有没有办法过滤这个事件?或者在盒子模型级别验证数据的替代方法?
public class SSCCE {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
JFrame aframe = new JFrame();
Combo _combo = new Combo();
_combo.addElement("This");
_combo.addElement("That");
JComboBox _box = new JComboBox(new Combo());
_box.setEditable(true);
aframe.add(_box);
aframe.setVisible(true);
}
static class Combo extends DefaultComboBoxModel{
public Combo(){
}
int i = 0;
@Override
public Object getSelectedItem() {
System.out.println("Get selected Item" + i);
i++;
return super.getSelectedItem();
}
}
}