黑马程序员技术交流社区

标题: 键盘事件 [打印本页]

作者: 黑马连家华    时间: 2012-7-16 02:04
标题: 键盘事件
本帖最后由 Noword 于 2012-7-16 14:29 编辑

import java.awt.Frame;
import java.awt.TextField;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;


class f
{
        public static void main(String[] args)
        {
        Frame frame = new Frame("asdf");
        TextField tf = new TextField();
        frame.add(tf);
        frame.setVisible(true);
        tf.addKeyListener(new KeyAdapter()
        {
                public void KeyPressed(KeyEvent k)
                {
                        if(k.getKeyCode() == KeyEvent.VK_ENTER)
                        System.out.println("asdf");
                }
        });
}}
为什么没反应!!!气死我了,弄了一天了




作者: 杨_扬    时间: 2012-7-16 02:27
本帖最后由 杨_扬 于 2012-7-16 02:28 编辑

嗯,你肯定是粗心了
public void KeyPressed(KeyEvent k)
这句你再仔细看看,是不是感觉什么地方有点不对劲?
KeyPressed 应该是keyPressed第一个字母k是小写
一般情况下方法名的首字母都小写,对吧?呵呵
作者: 牛少锋    时间: 2012-7-16 10:24
public void KeyPressed(KeyEvent k)
                {
                        if(k.getKeyCode() == KeyEvent.VK_ENTER)
                        System.out.println("asdf");
                }
        });
方法名字出错了,应该是小写的。
建议哥们用MyEclipse编译器,这个会直接提示编译错误的信息,可以帮你检查语法错误,可以帮你省去好多因为粗细
而不小心的语法错误
作者: 王宝康    时间: 2012-7-16 12:06
在myelipse下可以很容易的看到提示信息,The method KeyPressed(KeyEvent) from the type new KeyAdapter(){} is never used  locally,说明这个方法一直不会被调用到,可是你需要调用键盘的按下事件,你就会试着修改一下,然后把方法名字改为keyPressed后就会看到你想要的Invoked when a key has been pressed.当一个键被按下时,会被调用。

a.JPG (34.84 KB, 下载次数: 16)

KeyPressed

KeyPressed

b.JPG (36.75 KB, 下载次数: 15)

keyPressed

keyPressed

作者: 黑马连家华    时间: 2012-7-16 14:29
写的时候还纳闷儿了,人家都小写怎么这个就大写了呢?我还百度了,结果百度也是大写...然后我就没想过大小写的问题.....................................................................................郁闷




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