【问题标题】:How to catch only "visible" keys from KeyEvent in Java?如何从 Java 中的 KeyEvent 中仅捕获“可见”键?
【发布时间】:2014-03-04 01:33:22
【问题描述】:

我有一个 KeyEvent 对象,如果键是可见的,我只想处理它。可见我的意思是像这些字符之一abcdefghijklmnopqrstuvwxy1234567890^°!"§$%&/()=?`@+#*',.-;:_" 我不想处理 SPACE、ESC、BACKSPACE、DEL...

我现在打电话的是e.isActionKey(),如果是,我不会处理它。但这仅包括几个键,例如 PAGE_UP、PAGE_DOWN。

过滤掉所有我不想要的键的最佳方法是什么?

【问题讨论】:

    标签: java keyboard key keyevent


    【解决方案1】:

    嗯,我基本上已经给出了答案:)

    KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(new KeyEventDispatcher() { @Override public boolean dispatchKeyEvent(KeyEvent e) { String validString = "^°1!2\"§3$4%5&6/7{(8[)9]=0}?ß\\`´q@we€rtzuiopü*+~asdfghjklöä'#<>yxcvbnmµ;,:._-"; if (e.getID() == KeyEvent.KEY_TYPED && validString.indexOf(String.valueOf(e.getKeyChar()).toLowerCase()) != -1) { if (CardPanelView.this.cardLayout.getCurrentCard() == tabbedPane) { CardPanelView.this.controller.callSetSearchText(Character.toString(e.getKeyChar())); } } return false; } });

    【讨论】:

      猜你喜欢
      • 2014-07-20
      • 1970-01-01
      • 1970-01-01
      • 2015-09-30
      • 2013-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-17
      相关资源
      最近更新 更多