键盘事件
首先创建一个窗体,在窗体添加一个按钮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+ENTER if (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(); }}