A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© kira 中级黑马   /  2014-2-9 11:30  /  1153 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

现在是这样的 我建了一个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. }
复制代码



评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1 淡定

查看全部评分

3 个回复

倒序浏览
输出语句应该这样写:
System.out.println(KeyEvent.getKeyText(e.getKeyCode())+"..."+e.getKeyCode());
                                                                         这里写getKeyCode()

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1 赞一个!

查看全部评分

回复 使用道具 举报
长石 发表于 2014-2-9 11:52
输出语句应该这样写:
System.out.println(KeyEvent.getKeyText(e.getKeyCode())+"..."+e.getKeyCode());
  ...

谢谢了:lol 我原本想着想着传code结果还是传成了KeyChar
想对了结果还写错了 不应该啊
回复 使用道具 举报
学习中!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马