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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杜超 高级黑马   /  2013-4-1 18:54  /  1365 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杜超 于 2013-4-3 22:47 编辑

大家看看输出结果,文本框可以输出字母和汉字,字母是在中文拼音模式下输入的,先按字母,再按shift就输进去了,
毕老师讲的不是说输入字母不打印吗?我输入,并打印了!这个算不算bug呢?

import java.awt.*;
import java.awt.event.*;
class MouseAndKeyEvent
{
        //定义该图形中所需的组件的引用
        private Frame f;
        private Button but;
        private TextField tf;
        MouseAndKeyEvent()
        {
                init();
        }
        public void init()
        {
                f = new Frame("my frame");

                //对frame进行基本设置
                f.setBounds(300,100,600,500);
                f.setLayout(new FlowLayout());
                //建立一个文本框
                tf = new TextField(10);
               
                but = new Button("我是按钮");
               
                //将组件添加到frame中
                f.add(tf);
                f.add(but);
                //调用窗体事件
                myEvent();
                //显示窗体
                f.setVisible(true);
        }
        private void myEvent()
        {
                //窗口监听
                f.addWindowListener(new WindowAdapter()
                {
                        public void windowClosing(WindowEvent e)
                        {
                                System.exit(0);
                        }
                });
                //键盘监听
                tf.addKeyListener(new KeyAdapter()
                {
                        public void keyPressed(KeyEvent e)
                        {
                                int code = e.getKeyCode();
                                if(!(code>=KeyEvent.VK_0 && code<=KeyEvent.VK_9))
                                {
                                        System.out.println(code+"...输入错误,请重新输入!");
                                        e.consume();//输入的英文字母不让显示
                                }
                        }
                });
        }
        public static void main(String[] args)
        {
                new MouseAndKeyEvent();
        }
}





未命名.jpg (14.76 KB, 下载次数: 28)

运行结果

运行结果

评分

参与人数 1技术分 +1 收起 理由
张熙韬 + 1

查看全部评分

2 个回复

倒序浏览
我想这只是一个简单的监听,用中文输入法的时候,当前活动的焦点不在Text 而是在输入法上了,这样就监听不到了.{:soso_e134:}
回复 使用道具 举报
李尧 发表于 2013-4-1 19:06
我想这只是一个简单的监听,用中文输入法的时候,当前活动的焦点不在Text 而是在输入法上了,这样就监听不到了 ...

应该只是监听英文状态下的监听吧,要不怎么英文状态下的就没事,中文的就不行了,不过QQ我试了一,英文中文都能输入
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马