Java KeyListener无法正常工作

时间:2010-10-20 15:34:07

标签: java event-handling

我刚刚设法让KeyListener在一个空的应用程序中工作,但后来我尝试在我的应用程序中实现它,无论我输入多少密钥,它都无法正常工作!

一位朋友告诉我这是因为我在应用程序上有按钮(JButton)(并且我实现了actionPerformed方法),任何人都可以向我解释为什么会发生这种情况(以及如何解决)?

编辑: - 是的,问题在于焦点,我在一些论坛中找到了解决方案,解决方案非常简单。它添加: setFocusable(真);之后,setVisible(true);在扩展JFrame的类中。

1 个答案:

答案 0 :(得分:0)

您要添加KeyListener吗?我想如果你想在整个计算器中监听KeyEvents,你必须将它添加到按钮所在的Container中。

但我相信只有拥有焦点的组件会重新获得KeyEvents,因此我不知道容器是否具有焦点,或者如果焦点位于计算器的按钮上,事件是否被提升为其父级。

你可以解决这个问题,将keyListener添加到执行这些东西的容器(打印我所使用的字符),以及按钮和文本字段,将事件提升到它的容器