事件监听机制——键盘事件

来源:互联网 发布:python单引号和双引号 编辑:程序博客网 时间:2024/05/22 04:31

键盘事件

首先创建一个窗体,在窗体添加一个按钮Button,Frame的布局为流式布局,在构造函数中对Frame进行初始化,通过初始化函数init()封装实现。

要求:

(1)按下键盘上的键时,得到键盘字母和键盘码。

思考:对于一个字母的键和多个字母的键分别怎么处理。例如:A和SHIFT

(2)实现键盘对按钮的控制。就像登陆界面一下,按ENTER实现登陆。

思考:

(1)按钮活动事件与按钮活动事件的区别?

按钮活动包括单机、双击、进入、离开等等,是更大的范围。平时开发时优先选择addActionListener。

(2)如何知道一个事件监听有无适配器?

一般一个组件包括3个方法及3个以上方法时有适配器,方便特定事件处理,创建事件对象。



import java.awt.*;import java.awt.event.*;//按钮活动事件与按钮活动事件的区别?优先选择addActionListenerclass MouseAndKeyEvent {//定义该图形所带的组建的引用private Frame f;private Button btn;MouseAndKeyEvent(){init();}public void init(){f=new Frame("My frame");//对frame进行基本设置f.setBounds(300,100,600,500);f.setLayout(new FlowLayout());btn=new Button("my button");//加载一下窗体事件myEvent();//将组件添加到窗体中f.add(btn);//显示窗体f.setVisible(true);}private void myEvent(){f.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});//给btn添加一个键盘监听btn.addKeyListener(new KeyAdapter(){//*****建议对于不同种类型分条演示*******public void keyPressed(KeyEvent e){//得到键盘字母 和键盘码System.out.println(e.getKeyChar()+"...."+e.getKeyCode());//获得按下去键的字符串System.out.println(KeyEvent.getKeyText(e.getKeyChar())+"...."+e.getKeyCode());//按ESC使程序退出if (e.getKeyCode()==KeyEvent.VK_ESCAPE){System.exit(0);}//组合键练习--按住Ctrl+ENTERif (e.isControlDown()&&e.getKeyCode()==KeyEvent.VK_ENTER)System.out.println("ctrl+enter is run");}});/*//按钮活动监听btn.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){System.out.println("action ok");}});//当鼠标进入按钮区域触发该事件btn.addMouseListener(new MouseAdapter(){private int count=1;//鼠标进入时触发public void mouseEntered(MouseEvent e){System.out.println("鼠标进入"+count+++"次");}//点击时触发public void mouseClicked(MouseEvent e){if(e.getClickCount()==2)System.out.println("鼠标双击"+count+++"次");}});*/}public static void main(String[] args) {new MouseAndKeyEvent();}}



0 0
原创粉丝点击