java - 如何在 JTextfield 上添加 command+a?

标签 java swing jtextfield key-bindings keystroke

您好,我正在尝试在我的应用程序中添加全选、剪切、复制和粘贴命令,我设法解决了剪切、复制和粘贴命令,但我似乎还没有想出如何添加cmd-a 命令...

这适用于我的 cmd-x 命令

text.getInputMap(JComponent.WHEN_FOCUSED).put(KeyStroke.getKeyStroke(KeyEvent.VK_X, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()),  "cut");

但是当我为 cmd-a 尝试这个时:

text.getInputMap(JComponent.WHEN_FOCUSED).put(KeyStroke.getKeyStroke(KeyEvent.VK_A, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()),  "select");

好像不行。。。

我读到一些关于使用这个void来选择文本的东西,但我不知道如何将它绑定(bind)到command+a命令

  myTextfield.selectAll(); 

有人知道如何正确实现吗?

最佳答案

使用正确的 String:"select-all" 而不是 "select"

您可以通过调查 InputMap 来发现这些 String,例如使用:

  public static void main( String[] args ) {
    EventQueue.invokeLater( new Runnable() {
      @Override
      public void run() {
        JTextField textField = new JTextField();
        InputMap inputMap = textField.getInputMap( JComponent.WHEN_FOCUSED );
        KeyStroke[] keyStrokes = inputMap.allKeys();
        for ( int i = 0; i < keyStrokes.length; i++ ) {
          KeyStroke keyStroke = keyStrokes[ i ];
          Object value = inputMap.get( keyStroke );
          System.out.println(keyStroke + "-\"" + value + "\"");
        }
      }
    } );
  }

它打印出来(不是粘贴在这里的完整输出)

ctrl pressed BACK_SPACE-"delete-previous-word"
ctrl pressed A-"select-all"
shift pressed KP_RIGHT-"selection-forward"

这表明您要查找的 String"select-all"

请注意,用户切换 ctrl 键和 cmd 键的功能可能真的违反直觉。例如在 Mac 上 cmd+A 默认情况下会选择所有(这是预期的),但我永远不会期望在 Windows/Linux 机器上

关于java - 如何在 JTextfield 上添加 command+a?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12422818/

相关文章:

java - 在 JComboBox 中使用 JList

java - 限制 JTextField 中的输入长度不起作用

java - 如何通过以编程方式生成 KeyEvent 来模拟键盘输入(包括光标移动)

java - Java 中的 DiffieHellman key 交换为 AES 或 DESede

java - Integer.parseInt 失败 'For input string: "500 0"'

Java:可以替换现有 JTable 中的 TableModel 吗?

java - JTextField无法在if语句java中使用输入

java - 当新线程运行时更大的线程池或额外的 ExecutorService?

java - 安卓房间 : FOREIGN KEY constraint failed (Sqlite code 787)

java - 正确的模型- View - Controller 设计