zoukankan      html  css  js  c++  java
  • 事件监听机制——键盘事件

    键盘事件

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

    要求:

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

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

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

    思考:

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

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

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

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



    import java.awt.*;
    import java.awt.event.*;
    
    //按钮活动事件与按钮活动事件的区别?优先选择addActionListener
    
    class 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();
    	}
    }
    



  • 相关阅读:
    cpu_relax
    x86汇编寄存器,函数参数入栈说明
    内核调试打印dump_stack
    内核模块中计算执行时间
    js
    JS解析+预解析相关总结
    github-如何设置SSH Key
    块级元素与行内元素的区别
    编写高质量代码——html、css、javascript
    jquery——简单的下拉列表制作及bind()方法的示例
  • 原文地址:https://www.cnblogs.com/xiangyangzhu/p/4239779.html
Copyright © 2011-2022 走看看