好的...好吧,我正在尝试根据来源进行过滤。问题是我的可编辑组合框...它们是 instanceof
javax.swing.plaf.basic.BasicComboBoxEditor$BorderlessTextField
而且由于 BorderlessTextField 是一个私有内部类,我显然不能对它进行 instanceof 检查。
想法?
编辑:好的,所以这有效....
KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventPostProcessor(new KeyEventPostProcessor() {
public boolean postProcessKeyEvent(KeyEvent e) {
if (e.getID() == KeyEvent.KEY_PRESSED) {
Object s = e.getComponent();
if (!(s instanceof JTextField) &&
!(s instanceof JTable && ((JTable) s).isEditing())
) {
music_player.pauseEvent();
}
//System.out.println(s.getClass().toString());
}
return true;
}
});
它完全恶心,我讨厌它。我希望我能找到一种方法来检查按键是否已被任何组件消耗 - 然后我只能在按键未被任何组件操作时执行暂停事件。