黑马程序员技术交流社区

标题: 关于KeyEvent获取功能键String的问题 [打印本页]

作者: kira    时间: 2014-2-9 11:30
标题: 关于KeyEvent获取功能键String的问题
现在是这样的 我建了一个Frame 在里面加了一个button
在button上加了一个addkeyListener监听事件 我发现用
getKeyText方法获取后 空格和回车没问题 但是比如 shift或者ctrl键的时候
控制台上就显示 Unknown keyCode: 0xffff...17
这种 表示它不认 请问 这是什么原因 {:soso_e114:}
代码如下
  1. import java.awt.Button;
  2. import java.awt.FlowLayout;
  3. import java.awt.Frame;
  4. import java.awt.event.ActionEvent;
  5. import java.awt.event.ActionListener;
  6. import java.awt.event.KeyAdapter;
  7. import java.awt.event.KeyEvent;
  8. import java.awt.event.MouseAdapter;
  9. import java.awt.event.MouseEvent;
  10. import java.awt.event.MouseListener;
  11. import java.awt.event.WindowAdapter;
  12. import java.awt.event.WindowEvent;

  13. public class AwtDemo4 {

  14.         /**
  15.          * @param args
  16.          */
  17.         public static void main(String[] args) {
  18.                 // TODO Auto-generated method stub
  19.                 new myWin222();
  20.         }

  21. }
  22. class myWin222{
  23.         private Frame f;
  24.         private Button b;
  25.         myWin222(){
  26.                
  27.                 fun();
  28.                
  29.                
  30.         }
  31.         //窗口
  32.         public void fun(){
  33.                 f=new Frame("my awt2");
  34.                 f.setBounds(100, 200, 300, 400);
  35.                 b =new Button("my button");
  36.                 f.setLayout(new FlowLayout());
  37.                 f.add(b);
  38.                 f.setVisible(true);
  39.                 myEvent();
  40.         }
  41.         private void myEvent(){
  42.                
  43.                 f.addWindowListener(new WindowAdapter() {
  44.                         public void windowClosing(WindowEvent we){
  45.                                
  46.                                 System.exit(0);//退出
  47.                         }
  48.                        
  49.                 });
  50.                

  51.                 b.addKeyListener(new KeyAdapter() {
  52.                        
  53.                         public void keyPressed(KeyEvent e){//按下键盘的时候
  54.                                
  55.                                 System.out.println(e.getKeyText(e.getKeyChar())+"..."+e.getKeyCode());
  56.                                
  57.                         }
  58.                        
  59.                 });
  60.                
  61.         }
  62.        
  63.        
  64. }
复制代码




作者: 长石    时间: 2014-2-9 11:52
输出语句应该这样写:
System.out.println(KeyEvent.getKeyText(e.getKeyCode())+"..."+e.getKeyCode());
                                                                         这里写getKeyCode()
作者: kira    时间: 2014-2-9 12:02
长石 发表于 2014-2-9 11:52
输出语句应该这样写:
System.out.println(KeyEvent.getKeyText(e.getKeyCode())+"..."+e.getKeyCode());
  ...

谢谢了:lol 我原本想着想着传code结果还是传成了KeyChar
想对了结果还写错了 不应该啊

作者: 徐青松    时间: 2014-2-15 21:46
学习中!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2