当前位置: 首页 > 面试题库 >

如何为java.awt.Frame进行键绑定?

邵和硕
2023-03-14
问题内容

背景

我的窗口是一个java.awt.Frame,并且在Frame内部是两个面板(java.awt.Panel)。我正在尝试使窗口能够处理我按下的按钮。

尝试1号

我尝试使用KeyListener,使Frame实现KeyListener。我将KeyListener添加到了Frame中,但是当我按下键时,KeyListener函数没有执行任何操作。(我尝试使用System.out.println()进行打印。)

尝试2号

我尝试按照以下教程进行操作: http

//tips4java.wordpress.com/2008/10/10/key-
bindings/
。这是我尝试按下空格键的尝试:

public void registerActions(){ //01
Action myAction = new AbstractAction(){ //02
@Override //03
public void actionPerformed(ActionEvent e) { //04
System.out.println(“GREAT SUCCESS!”); //05
} //06
}; //07
KeyStroke key = KeyStroke.getKeyStroke(KeyEvent.VK_SPACE, 0); //08
component.getInputMap().put(key, “myAction”); //09
component.getActionMap().put(“myAction”, myAction); //10
} //11

主要问题是我不知道第09和10行中应该包含什么“组件”,因为我的应用程序没有任何JComponents。

我的问题

有没有一种方法可以不使用回转组件?还是有其他方法可以处理按键?


问题答案:

我发现我可以使用AWTEventListener做到这一点。

public class MyFrame extends Frame implements AWTEventListener {

  ...

  public MyFrame(String title){
    super(title);
    ...
    this.getToolkit().addAWTEventListener(this, AWTEvent.KEY_EVENT_MASK);
  }

  @Override
  public void eventDispatched(AWTEvent event) {
    if(event instanceof KeyEvent){
      KeyEvent key = (KeyEvent)event;
      if(key.getID()==KeyEvent.KEY_PRESSED){ //Handle key presses
        System.out.println(key.getKeyChar());
        //TODO: do something with the key press
        key.consume();
      }
    }
  }
}


 类似资料:
  • 问题内容: 无论框架的重点是什么,我们如何为JFrame进行键绑定? 我尝试为JFrame的根窗格设置输入映射,但是即使可编辑为false,当焦点位于JTextArea上时,该映射也不起作用。 使键绑定在整个JFrame中起作用的最简单方法是什么? 问题答案: 我尝试为JFrame的根窗格设置输入映射,但是即使可编辑为false,当焦点位于JTextArea上时,该映射也不起作用。 正确。如果组件

  • 我想使用ldapsearch从Linux实例(AmazonLinuxOS)对远程Windows服务器进行身份验证测试。Kerberos绑定是通过从包cyrus-sasl-gssapi安装的GSS-API工作的,是否有可用于GSS-SPNEGO的等效包?我希望能够在Kerberos不起作用的情况下回退到NTLM身份验证。 服务器同时支持GSSAPI和GSS-SPNEGO,但从客户端来看,GSS-SP

  • 例如,我有Hashmap 如何根据键的某些属性对Map进行排序?

  • 这是带有Resharper终极试用版的Visual Studio 2015

  • 我是solr的初学者,我发现查询 因此,如何使这个查询工作我的模式是

  • 问题内容: 我在代码(游戏或其他方式)中使用s作为屏幕对象对用户键输入做出反应的方式。这是我的代码: 我的响应能力有问题: 我需要单击该对象才能使其工作。 我对按下其中一个键的反应不是我希望它如何工作-反应太灵敏或反应迟钝。 为什么会发生这种情况,我该如何解决? 问题答案: 该答案说明并演示了如何使用键绑定代替键侦听器来进行教学。它不是 如何用Java编写游戏。 良好的代码编写外观应该如何(例如可