我有一个内容 Pane ,其中包含一个 JScrollPane 包裹在一个不可编辑的 JTextArea 周围,我正在使用它(现在)简单地显示有关正在按下的键的信息(只是试图让这个 KeyListener 工作)。
KeyListener 位于 JTextArea 上,当框架被选中时一切正常。但是,即使选择了另一个窗口,我也希望注册按键。有什么办法吗?
谢谢。
最佳答案
我以前做过,但我不记得具体是怎么做的。我认为它类似于:
KeyEventDispatcher dispatcher = new KeyEventDispatcher()
{
public boolean dispatchKeyEvent(KeyEvent e)
{
System.out.println(e.getKeyChar());
return false;
}
};
DefaultKeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(dispatcher);
只需使用您的自定义代码修改 SysOut。如果你想阻止事件被分派(dispatch),该方法应该返回 true 而不是 false。我还找到了this question这可能会解决您的问题。
关于java - 在背景框架上使用 Java KeyListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5032112/