我正在尝试KeyListener
为我的实现JFrame
。在构造函数上,我使用以下代码:
System.out.println("test");
addKeyListener(new KeyListener() {
public void keyPressed(KeyEvent e) { System.out.println( "tester"); }
public void keyReleased(KeyEvent e) { System.out.println("2test2"); }
public void keyTyped(KeyEvent e) { System.out.println("3test3"); }
});
当我运行它时,该test
消息出现在我的控制台中。但是,当我按一个键时,我没有收到其他任何消息,好像该消息KeyListener
根本不在那儿。
我当时想这可能是因为重点不在上JFrame
,所以他们KeyListener
没有收到任何事件。但是,我很确定。
我有什么想念的吗?
你必须将keyListener添加到所需的每个组件中。仅具有焦点的组件将发送这些事件。例如,如果JFrame中只有一个TextBox,则该TextBox具有焦点。因此,你还必须将KeyListener添加到此组件。
过程是一样的:
myComponent.addKeyListener(new KeyListener ...);
注意:某些组件无法像JLabel那样聚焦。
要将它们设置为焦点,你需要:
myComponent.setFocusable(true);
问题内容: 我在项目中使用默认的Java KeyListener遇到麻烦。我注意到有时启动时,KeyListener似乎并没有转发KeyEvent。 问题的症状: 启动应用程序时,未处理密钥输入。这仅在有时发生。有时,我必须关闭并启动应用程序7至8次,直到显示出来。有时这是第一次尝试。发生这种情况后,直到我再次重新启动应用程序,它才起作用。 我正在使用: Window 7 x64和最新的Eclip
问题内容: 我有一个使用从扩展的类的子类 我将一个对象添加到框架-中。现在,当我按下任意键盘键时,不会调用任何方法,并且似乎没有窗口焦点。我也尝试过调用,但仍然没有响应。 如何使它响应按键? 问题答案: 您是否为面板设置了面板本身?另外,您可能需要将面板设置为可聚焦。我通过此代码对其进行了测试,它似乎可以正常工作
处理KeyEvent的类应该实现此接口。该类的对象必须在组件中注册。 可以使用addKeyListener()方法注册该对象。 接口声明 以下是java.awt.event.KeyListener接口的声明: public interface KeyListener extends EventListener 接口方法 (Interface methods) SN 方法和描述 1 void
处理KeyEvent的类应该实现此接口。 该类的对象必须在组件中注册。 可以使用addKeyListener()方法注册该对象。 接口声明 (Interface Declaration) 以下是java.awt.event.KeyListener接口的声明 - public interface KeyListener extends EventListener 接口方法 Sr.No. 方法
问题内容: 我的程序应该等待按下向左或向右箭头键,然后更改一个值,以便下次更新PaintComponent时,屏幕看起来有所不同。但是,运行该程序时,屏幕没有变化。 以下是变量声明: 这是主要的KeyListener声明: 这是用于绘画的方法: 当我运行该程序时,该程序会打印外壳,但是当我按箭头键时,屏幕上没有任何变化。 问题答案: 您需要先将关键侦听器添加到组件,然后才能调用它: 您还需要使组件
问题内容: 我有一个JTextField(JT)在我尽快要按照用户类型,例如在里面,这个词被自动JTextField中写入。 我使用代码: 但这会在按下e时给出!有任何想法吗?非常感谢 问题答案: 不要在文本组件上使用,存在一系列问题(未通知,突变异常,当用户将某些内容粘贴到字段时未通知),相反,您应该使用 例如…