java - Swing : detecting onKeyPressed

标签 java swing keylistener

我正在尝试做一件非常简单的事情:当用户按下键盘上的某个键时触发一个操作

我想要映射的键是:

  • 键+
  • 键-
  • 删除键
  • ctrl+c
  • ctrl+v

    公共(public)类 keytestmain 扩展 Applet{

    //Called when this applet is loaded into the browser.
    public void init() {
        //Execute a job on the event-dispatching thread; creating this applet's GUI.
        try {
            SwingUtilities.invokeAndWait(new Runnable() {
                public void run() {
                    JLabel lbl = new JLabel("Hello World");
                    add(lbl);
                    JPanel p = new JPanel();
                    p.setBackground(Color.green);
                    p.setMinimumSize(new Dimension(100,100));
                    p.setPreferredSize(new Dimension(100,100));
                    p.setMaximumSize(new Dimension(100,100));
                    InputMap inputMap = new InputMap();
    
                    // Add a KeyStroke
                    inputMap.put(KeyStroke.getKeyStroke("SPACE"), "actionName");
    
                    inputMap.setParent(p.getInputMap(JComponent.WHEN_FOCUSED));
                    p.setInputMap(JComponent.WHEN_FOCUSED, inputMap);
                    add(p);
                }
            });
        } catch (Exception e) {
            System.err.println("createGUI didn't complete successfully");
        }
    
    }
    

    }

但是没有效果

有什么想法吗?

最佳答案

我会使用Key Bindings ,而不是 KeyListeners。这更可靠,因为它没有太多焦点问题。此外,KeyListeners 是一个相对较旧的 AWT 解决方案,因此根据您的 JDE,该命令可能已被弃用。

关于java - Swing : detecting onKeyPressed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7100400/

相关文章:

java - 多个 Keylistener Java

java - 如何聆听键盘上按下更多按钮的声音?

java - 我如何将 int 链接到字符串数组 java 中的字符串

java - 可以将 JAXX 与 Eclipse 一起使用吗?

java - 为什么我需要一个可运行程序而不是直接从 main 调用?

java - 当 SQL 进行排序时,如何启用 GUI 行为来对 JTable 进行排序?

java - keyPressed 监听器产生奇怪的行为

java - 如何拆分字符串数组并将字符串存储在另一个数组中

Java, "a[1] *= a[1] = b[n + 1]"没有按预期工作?

java - 扫描仪在使用 next() 或 nextFoo() 后跳过 nextLine()?