java – 在帧内捕获按键

这似乎是一个简单的行为,但我很难实现它.我正在研究绘制数据图表的软件.我想在用户点击进入时重绘图表.更确切地说,当用户点击进入并且没有选择文本字段时,我想绘制图形;但是现在,只要用户点击进入,我就会对绘图感到满意.

我首先尝试将基本的KeyListener安装到帧中,但这不起作用,因为JFrame子节点而不是帧接收事件.

然后我尝试使用KeyEventDispatcher,但它证明了全局概念.我可以同时在屏幕上显示两个图表,可以关闭旧图表或用新图表替换旧图表.使用KeyEventDispatcher,我没有简单的方法可以知道我想要在多个绘图中激活哪个绘图,而现在打开的绘图可能不是我实例化密钥调度程序时打开的绘图.我知道这个解决方案仍然可以工作,但它需要我存储额外的数据,以确定当前活动的图不符合程序架构.

似乎应该有一个更简单的方法来捕获调度到JFrame / JPanel或任何JFrame的子节点的任何KeyEvent;但忽略调度到其他帧的事件.优选的是可以添加到框架中并因此在框架被布置时自动设置的方法.任何人都可以建议一个更简单的方法然后我尝试过吗?

最佳答案 不要使用KeyListener.

Key Binding添加到图形面板.

点赞