黑马程序员技术交流社区

标题: 同时按下Ctrl和Enter键,getKeyCode()方法到底将返回哪个键? [打印本页]

作者: 李大强    时间: 2013-2-7 17:54
标题: 同时按下Ctrl和Enter键,getKeyCode()方法到底将返回哪个键?
本帖最后由 李大强 于 2013-2-7 17:57 编辑

当给一个按钮添加键盘监听器的时候,用getKeyCode()方法将返回哪一个键被按下,
但如果同时按下Ctrl和Enter键,此时再调用此方法将到底返回哪一个键呢?下面的程序中怎么能确保该方法将最终返回Enter键呢?
import java.awt.*;
import java.awt.event.*;


class MouseAndKeyEvent
{
        private Frame f;
        private Button but;
        

        MouseAndKeyEvent()
        {
                init();
        }

        public void init()
        {
                f = new Frame("my frame");

                f.setBounds(300,100,600,500);
                f.setLayout(new FlowLayout());

               
                but = new Button("my button");        
               
                f.add(but);

                myEvent();

                f.setVisible(true);

        }
        private void myEvent()
        {
                f.addWindowListener(new WindowAdapter()
                {
                        public void windowClosing(WindowEvent e)
                        {
                                System.exit(0);
                        }
                });


        

                //给But添加一个键盘监听。
                but.addKeyListener(new KeyAdapter()
                {
                        public void keyPressed(KeyEvent e)
                        {        
                                if(e.isControlDown()&&e.getKeyCode()==KeyEvent.VK_ENTER)//此时一共有两个键被同时按下,你怎么保证‘e.getKeyCode()“返回的键不是CTRL呢?
                                                                                                                                //怎么确保返回的就是Enter呢?
                                System.out.println("ctrl+enter is run");

                                
                        }
                });



               
        }


        public static void main(String[] args)
        {
                new MouseAndKeyEvent();
        }
}





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