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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郝勇 中级黑马   /  2013-3-23 13:56  /  1800 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 郝勇 于 2013-3-24 08:13 编辑



如上图第十行中System.out.println(e.getKeyChar()+"...."+e.getKeyCode());

getKeyChar()  返回键
getKeyCode() 返回键对应的码

而第九行中System.out.println(KeyEvent.getKeyText(e.getKeyCode())+"...."+e.getKeyCode());

e.getKeyCode()+"...."+e.getKeyCode()     两个都一样呢   都是返回键对应的码

这是老师为讲解 空格键 shift键对应码的问题写的一行程序   不是应该像第十行那样前面getKeyChar()吗?   

点评

记得及时处理帖子哦,继续追问,或将分类改成【已解决】,谢谢  发表于 2013-3-23 22:09

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

9 个回复

倒序浏览
是啊!那你没有运行吗?多联练习一下,应该就OK啦!
回复 使用道具 举报
张昶 发表于 2013-3-23 15:50
是啊!那你没有运行吗?多联练习一下,应该就OK啦!

运行可以啊   就是想知道为什么!
回复 使用道具 举报
大哥,那你看到第九和第十行的区别没有?第九行是KeyEvent.getKeyText(getKeyCode()),可以直接获取用户从键盘上输入的ASCII值;getKeyChar(),是获取用户从键盘上输入的字符,而getKeyCode(),是字符相对应的ASCII值啊!

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
张昶 发表于 2013-3-23 16:19
大哥,那你看到第九和第十行的区别没有?第九行是KeyEvent.getKeyText(getKeyCode()),可以直接获取用户从 ...

我的意思是第九行中getKeyText后括号里的为什么两个都是e.getKeyCode()  而不写成
e.getKeyChar()+"...."+e.getKeyCode()

System.out.println(KeyEvent.getKeyText(e.getKeyCode())+"...."+e.getKeyCode());
回复 使用道具 举报
第九行是获取用户从键盘上输入的ASCII值,直接输出从键盘上输入的ASCII值;
第十行是通过getKeyChar()方法,获取用户从键盘上输入的字符,然后通过getKeyCode()方法,获取这个字符相对应的ASCII值啊!
懂了没?
回复 使用道具 举报
张昶 中级黑马 2013-3-23 18:44:36
7#
例如:
第九行,你输入“123”(假设“123”的ASCII值是“123”),则它就输出“123”;
第十行,你输入字符a,则它就输出a字符相对应的ASCII值--97。
回复 使用道具 举报
郝勇 中级黑马 2013-3-23 18:51:02
8#
张昶 发表于 2013-3-23 18:44
例如:
第九行,你输入“123”(假设“123”的ASCII值是“123”),则它就输出“123”;
第十行,你输入字 ...

System.out.println(KeyEvent.getKeyText(e.getKeyCode())+"...."+e.getKeyCode());
上面那句话  输入Shift        输出   Shift....43(数字是我随便写的)


System.out.println(e.getKeyChar()+"...."+e.getKeyCode());
而这句话输入'A'   输出     A....23

我的意思是   上面那句中  为什么是两个e.getKeyCode()    不是应该输出两个都是数字么
回复 使用道具 举报
张昶 中级黑马 2013-3-23 18:58:42
9#
键盘监听接口:  KeyListener所有方的法参数(KeyEvent e)

       but.addKeyListener(newKeyAdapter(){

           publicvoid keyPressed(KeyEvente){

              System.out.println("按下了键盘的:"+KeyEvent.getKeyText(e.getKeyCode())+":"+e.getKeyCode());、

       //KeyEvent.getKeyText(e.getKeyCode()) 返回的键的字符串名称

               }

       });

    tf.addKeyListener(newKeyAdapter()

        {

            publicvoid keyPressed(KeyEvent e)

            {

                intcode = e.getKeyCode();

                if(!(code>=KeyEvent.VK_0&&code<=KeyEvent.VK_9))

                {

                    System.out.println(code+"输入错误,请输入数字");

                    e.consume(); //输入非数字时 不能被输入到TextFile中

                }

            }

        });

回复 使用道具 举报
张昶 发表于 2013-3-23 18:58
键盘监听接口:  KeyListener所有方的法参数(KeyEvent e)

       but.addKeyListener(newKeyAdapter(){

就是说  这个是特殊用法   不用getKeyChar()   
用getKeyChar()就可以实现 getKeyChar()   的效果   是这样理解么?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马