java快捷输入设置_java中的自定义键盘快捷键

好的 – 首先我认为没有办法在Java Swing中设置应用程序范围的快捷方式(请参阅此question).但对于一个组件来说,它是可能的.

您必须使用为KeyStroke创建一个Action.但对于Windows,我发现这个库非常helpful.

{

KeyStroke cancelKeyStroke = KeyStroke

.getKeyStroke((char) KeyEvent.VK_ESCAPE);

Keymap map = JTextComponent.getKeymap(JTextComponent.DEFAULT_KEYMAP);

map.addActionForKeyStroke(cancelKeyStroke, cancelKeyAction);

}

private static Action cancelKeyAction = new AbstractAction() {

public void actionPerformed(ActionEvent ae) {

Component comp = (Component) ae.getSource();

Window window = SwingUtilities.windowForComponent(comp);

if (window instanceof Dialog) {

window.dispose();

} else if (comp instanceof JTextComponent

&& !(comp instanceof JFormattedTextField)) {

JTextComponent tc = (JTextComponent) comp;

int end = tc.getSelectionEnd();

if (tc.getSelectionStart() != end) {

tc.setCaretPosition(end);

}

}

}

};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值