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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王梁星 中级黑马   /  2012-10-21 14:46  /  1632 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. //GUIawtMouseEvent.java
  2. import java.awt.*;
  3. import java.awt.event.*;
  4. class GUIawtKeyEvent{
  5.   public static void main(String[] args){
  6.     new FrameDemo();
  7.   }public static void sop(Object obj){
  8.     System.out.println(obj);
  9.   }
  10. }
  11. class FrameDemo{
  12.   private Frame f;
  13.   private Button b;
  14.   private TextField tf;
  15.   FrameDemo(){
  16.     init();
  17.   }
  18.   public void init(){
  19.     f=new Frame("hello");
  20.     f.setVisible(true);
  21.     f.setSize(500,120);
  22.     f.setLocation(350,150);
  23.     f.setLayout(new FlowLayout());
  24.     b=new Button("完成退出");
  25.     f.add(b);
  26.     tf=new TextField(10);
  27.     f.add(tf);
  28.     myEvent();
  29.   }private void myEvent(){
  30.     //为窗口创建监听器
  31.     f.addWindowListener(new WindowAdapter(){
  32.       public void windowClosing(WindowEvent e){
  33.         System.out.println("closing");
  34.         System.exit(0);
  35.       }
  36.     });
  37.     //为创建按钮监听器
  38.     b.addActionListener(new ActionListener(){
  39.       public void actionPerformed(ActionEvent e){
  40.         System.out.println("exiting,button");
  41.         System.exit(0);
  42.       }
  43.     });
  44.     //创建键盘监听器
  45.     b.addKeyListener(new KeyAdapter(){
  46.       public void keyPressed(KeyEvent e){
  47.         if(e.isControlDown()&&e.getKeyCode()==KeyEvent.VK_ENTER)//组合键
  48.           System.exit(0);
  49.         System.out.println(e.getKeyChar()+" "+e.getKeyText(e.getKeyCode()));
  50.       }
  51.     });
  52.     tf.addKeyListener(new KeyAdapter(){
  53.       public void keyPressed(KeyEvent e){
  54.         int code=e.getKeyCode();
  55.         if(!(code>=KeyEvent.VK_0 && code<=KeyEvent.VK_9)){
  56.           System.out.println(code+" is 非法字符");
  57.             e.consume();
  58.         }
  59.       }
  60.     });
  61.   }
  62. }

  63. 文本框里输出“非法字符“后依然显示在文本框里,我哪里写错了,自己检查不错错因
复制代码

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

9 个回复

倒序浏览
抢个沙发,先。
回复 使用道具 举报
怎个意思,你描述清楚些
回复 使用道具 举报
我前几天也是同样的问题,原因是我写错了大小写:

http://bbs.itheima.com/thread-28456-1-1.html

回复 使用道具 举报



你的代码,我测试没有这个现象
回复 使用道具 举报
刘伟平 发表于 2012-10-21 16:09
你的代码,我测试没有这个现象

奇怪了。。。再试试再回复
回复 使用道具 举报
刘伟平 发表于 2012-10-21 16:09
你的代码,我测试没有这个现象

我的确实不行,不知道哪里问题

你用我的源码,就没问题?
回复 使用道具 举报
王梁星 发表于 2012-10-21 16:42
我的确实不行,不知道哪里问题

你用我的源码,就没问题?

是不是还是你的LINUX系统跟我的WIN7配置不一样造成的
回复 使用道具 举报
刘伟平 发表于 2012-10-21 18:02
是不是还是你的LINUX系统跟我的WIN7配置不一样造成的

有这种可能,而且我的系统java.lang包也不能自动导入,原因不明(找不到)
回复 使用道具 举报
王威 发表于 2012-10-21 15:46
怎个意思,你描述清楚些

就是这个意思,linux效果跟windows下的不十分一样。难道是配置?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马