动作侦听器通常仅在您输入时触发,或将焦点从组合框的编辑器移开。截取编辑器的个人更改的正确方法是注册文档监听器:
final JTextComponent tc = (JTextComponent) combo.getEditor().getEditorComponent();
tc.getDocument().addDocumentListener(this);
DocumentListener interface具有在修改编辑器的文档(insertUpdate,removeUpdate,changeUpdate)时调用的方法。
您还可以使用匿名类来对事件来自哪里进行更细粒度的控制:
final JTextComponent tcA = (JTextComponent) comboA.getEditor().getEditorComponent();
tcA.getDocument().addDocumentListener(new DocumentListener() {
... code that uses comboA ...
});
final JTextComponent tcB = (JTextComponent) comboB.getEditor().getEditorComponent();
tcB.getDocument().addDocumentListener(new DocumentListener() {
... code that uses comboB ...
});