黑马程序员技术交流社区

标题: Frame为什么不断能监听按键事件? [打印本页]

作者: 黄战胜    时间: 2011-12-21 18:18
标题: Frame为什么不断能监听按键事件?
本帖最后由 hzs_android 于 2011-12-22 08:42 编辑

代码比较简单,就是用Frame创建一个窗体,然后调用按键监听方法,代码运行后,发现按键监听不起做用。还请各位帮忙解决下。代码如下:
import java.awt.*;
import java.awt.event.*;

class MyEventDemo2
{
        private Frame f;
        MyEventDemo2()
        {
                init();
        }

        public void init()
        {
                f = new Frame("My First Window");
                f.setBounds(300,100,600,500);
                MyEvent()
                f.setVisible(true);
        }
        public void MyEvent()
        {
                f.addWindowListener(new WindowAdapter()
                {
                        public void windowClosing(WindowEvent e)
                        {
                                System.exit(0);
                        }
                });
                f.addKeyListener(new KeyAdapter(){
                        public void keyPressed(KeyEvent e)
                        {
                                System.exit(0);
                        }
                });
        }
        public static void main(String[] args)
        {
                new MyEventDemo2();
        }
}

作者: 吴上储    时间: 2011-12-22 12:35
本帖最后由 吴上储 于 2011-12-22 12:37 编辑

import java.awt.*;
import java.awt.event.*;

class MyEventDemo2
{
        private Frame f;
        MyEventDemo2()
        {
                init();
        }

        public void init()
        {
                f = new Frame("My First Window");
                f.setBounds(300,100,600,500);
                MyEvent()              //没有;
                f.setVisible(true);
        }
        public void MyEvent()
        {
                f.addWindowListener(new WindowAdapter()
                {
                        public void windowClosing(WindowEvent e)
                        {
                                System.out.println("close");
                                System.exit(0);
                        }
                });
                f.addKeyListener(new KeyAdapter(){
                        public void keyPressed(KeyEvent e)
                        {
                               //这里一接收键盘按键 就直接退出
                                System.out.println("KeyEvent:"+e.getKeyChar());  //加上这句
                               // System.exit(0);

                        }
                });
        }
        public static void main(String[] args)
        {
                new MyEventDemo2();
        }
如果理解错误 还请谅解!
}


作者: wsssx    时间: 2011-12-22 18:23
提示: 作者被禁止或删除 内容自动屏蔽
作者: 黄战胜    时间: 2011-12-24 08:50
吴上储 发表于 2011-12-22 12:35
import java.awt.*;
import java.awt.event.*;

多谢,这个我前天晚上搞了很久,总是没有检测到按键,今天就OK了,可能是我把代码放的太乱了,执行的时候执行错了!:)




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