java 里面如果屏蔽组合键例如Ctrl+A全选之类的键

lw474580248 2010-09-01 03:23:03
public Text() {
this.setBounds(200, 200, 600, 500);
JTextPane pane = new JTextPane();
pane.setText("ABCDEFG");
this.add(pane);
setVisible(true);
}

public static void main(String[] args) {
new Text();
}
提供代码如上:

要求: (1)屏蔽Ctrl+A不能选中文字
(2)如果按Ctrl+A则文本JTextPane 输出~A
...全文
203 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yaoweijq 2010-09-02
  • 打赏
  • 举报
回复
学习了
[Quote=引用 3 楼 huntor 的回复:]
Java code
KeyStroke ctrlA = KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK);
Action doNothing = new AbstractAction(){
@Override public void actionPerformed(ActionEvent e){}
};

JT……
[/Quote]
huntor 2010-09-01
  • 打赏
  • 举报
回复
KeyStroke ctrlA = KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK);
Action doNothing = new AbstractAction(){
@Override public void actionPerformed(ActionEvent e){}
};

JTextPane textpane = ...;
textpane.getInputMap().put(ctrlA,"DO_NOTHING");
textpane.getActionMap().put("DO_NOTHING",doNothing);

按下Ctrl A什么都不做。
输出~A 你自己修改一下Action的实现。
lw474580248 2010-09-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yaoweijq 的回复:]
个人感觉纯java不现实
ctrl+a是操作系统级别的
跟alt+f4类似
[/Quote]
本人已经解决了该问题键盘是又物理键把物理键改掉可以解决问题
if (e.isControlDown()) {
e.setKeyCode(-1);
}

不知道还有没有其他更好的方法
yaoweijq 2010-09-01
  • 打赏
  • 举报
回复
个人感觉纯java不现实
ctrl+a是操作系统级别的
跟alt+f4类似

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧