0 0

java 里面怎么为组合键(比如书Ctrl+Z)添加监听器呀?5

//为Ctrl+Z添加监听器
mainclass.textarea.addKeyListener(new KeyAdapter(){
    
public void keyTyped(KeyEvent e){
    //按键Ctrl+Z
if(e.getKeyChar()==''){
  
   if(undolist.size()>0){
      //移出最后一个可撤销操作,并取消该操作
  undolist.removeLast().undo();
   }
}
}  
  });


上面的getKeyChar()应该怎么写呢?

问题补充:上面的getKeyChar()应该怎么写来的?

问题补充:
dyccsxg 写道
			public void keyTyped(KeyEvent e) {
				if (e.getKeyChar() == 0x1a){
					System.out.println("Ctrl + z");
				}
			}

能解释一下吗 ?
还有我想知道我上面的那个代码怎么也可以呀?
2010年11月16日 22:09

3个答案 按时间排序 按投票排序

0 0

采纳的答案

e.getKeyChar() 返回的是一个 Unicode 字符,例如 shift + 'a' 返回的是 ‘A’,
但 ctrl + z 并不是一个可显示的字符,这里只是碰巧返回了一个 ascii 码值等于
26 的控制符号,也就是十六进制的 0x1a 或者符号 ''
最好还是用 keyPressed 中的方法比较稳妥一些

2010年11月17日 09:45
0 0

			public void keyTyped(KeyEvent e) {
				if (e.getKeyChar() == 0x1a){
					System.out.println("Ctrl + z");
				}
			}

2010年11月16日 23:30
0 0

			public void keyPressed(KeyEvent e) {
				if (e.isControlDown() && e.getKeyCode() == KeyEvent.VK_Z){
					System.out.println("Ctrl + Z");
				}
				// ...
			}

2010年11月16日 22:35

相关推荐

Global site tag (gtag.js) - Google Analytics