Java检测jtree上的CTRL + X组合键

Shi*_*TCo 17 java keyboard-shortcuts jtree

我需要一个例子来说明如何添加一个键盘处理程序来检测何时按下Ctrl+ C,Ctrl+ X,Ctrl+ .CJTree

之前我用菜单快捷键做了这个,但没有成功.

MeB*_*Guy 28

您可以将KeyListeners添加到任何组件(f)

        f.addKeyListener(new KeyListener() {

            @Override
            public void keyTyped(KeyEvent e) {
            }

            @Override
            public void keyPressed(KeyEvent e) {
                if ((e.getKeyCode() == KeyEvent.VK_C) && ((e.getModifiers() & KeyEvent.CTRL_MASK) != 0)) {
                    System.out.println("woot!");
                }
            }

            @Override
            public void keyReleased(KeyEvent e) {
            }
        });
Run Code Online (Sandbox Code Playgroud)

  • 使用Toolkit.getMenuShortcutKeyMask()而不是硬编码CTRL_MASK.并非所有平台都使用Ctrl作为命令的修饰符. (3认同)

小智 13

以KeyListener为例:

jTree1.addKeyListener(new java.awt.event.KeyAdapter() {

        public void keyPressed(java.awt.event.KeyEvent evt) {
            if (evt.isControlDown() && evt.getKeyCode() == KeyEvent.VK_C) {

                JOptionPane.showMessageDialog(this, "ctrl + c");

            } else if (evt.isControlDown() && evt.getKeyCode() == KeyEvent.VK_X) {

                JOptionPane.showMessageDialog(this, "ctrl + x");

            } else if (evt.isControlDown() && evt.getKeyCode() == KeyEvent.VK_V) {

                JOptionPane.showMessageDialog(this, "ctrl + v");

            }
        }
    });
Run Code Online (Sandbox Code Playgroud)

希望有所帮助.