【发布时间】:2020-09-16 21:30:11
【问题描述】:
我有一个JTextPane。对于Ctrl+Arrow 按下,我想要我自己的行为。
jTextEntryPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_UP, Toolkit.getDefaultToolkit ().getMenuShortcutKeyMaskEx()), Controls.UP_ACTION);
jTextEntryPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_DOWN, Toolkit.getDefaultToolkit ().getMenuShortcutKeyMaskEx()), Controls.DOWN_ACTION);
jTextEntryPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, Toolkit.getDefaultToolkit ().getMenuShortcutKeyMaskEx()), Controls.LEFT_ACTION);
jTextEntryPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, Toolkit.getDefaultToolkit ().getMenuShortcutKeyMaskEx()), Controls.RIGHT_ACTION);
jTextEntryPane.getActionMap().put(Controls.UP_ACTION, new MoveAction(Controls.UP_ACTION, this));
jTextEntryPane.getActionMap().put(Controls.DOWN_ACTION, new MoveAction(Controls.DOWN_ACTION, this));
jTextEntryPane.getActionMap().put(Controls.LEFT_ACTION, new MoveAction(Controls.LEFT_ACTION, this));
jTextEntryPane.getActionMap().put(Controls.RIGHT_ACTION, new MoveAction(Controls.RIGHT_ACTION, this));
Ctrl+Up 和 Ctrl+Down 工作。
Ctrl+Left 和 Ctrl+Right 没有,而是被文本字段使用(转到输入字段的开头或结尾)。我想替换他们的行为,但我不想更改常规箭头(左右)的行为。我该怎么做?
【问题讨论】:
标签: java swing user-interface text