欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JAVA--GUI:鼠标和键盘事件

程序员文章站 2022-03-26 14:56:06
...

常用方法

MouseEvent

int getClickCount():返回与此事件关联的鼠标单击次数。

KeyEvent

static int VK_9:代表键盘数字"9"键。

static int VK_0:代表键盘数字"0"键。

static int VK_ENTER:代表键盘"Enter"键。

int getKeyCode():返回与此事件中的键关联的整数 keyCode。

static String getKeyText(int keyCode):返回描述 keyCode 的 String,如 "HOME"、"F1" 或 "A"。

InputEvent

boolean isControlDown():返回 Control 修饰符在此事件上是为 down,是否按下了"Ctrl"键。

boolean isShiftDown():返回 Shift 修饰符在此事件上是否为 down,是否按下了"Shift"键。

boolean isAltDown():返回 Alt 修饰符在此事件上是否为 down,是否按下了"Alt"键。

void consume():使用此事件,以便不会按照默认的方式由产生此事件的源代码来处理此事件。

案例

import java.awt.*;
import java.awt.event.*;
class MouseAndKeyEvent{
	// 定义该图形所需的组件的引用
	private Frame f;
	private Button but;
	private TextField tf;
	
	MouseAndKeyEvent(){
		init();
	}
	
	public void init(){
		f=new Frame("my frame");	
		// 对Frame组件进行基本设置
		f.setBounds(300,100,600,500);
		f.setLayout(new FlowLayout());	
		
		tf=new TextField(20);
		
		but=new Button("my button");
		// 把TextField添加到Frame组件中
		f.add(tf);	
		// 把Button添加到Frame组件中
		f.add(but);	
		
		// 加载窗体上事件
		myEvent();
		
		// 显示窗体
		f.setVisible(true);	
	}
	
	private void myEvent(){
		// 窗体关闭事件
		f.addWindowListener(new WindowAdapter(){
			public void windowClosing(WindowEvent e){
				System.exit(0);
			}
		});
		// 限制TextField文本框的输入
		tf.addKeyListener(new KeyAdapter(){
			public void keyPressed(KeyEvent e){
				int code=e.getKeyCode();
				if(!(code>=KeyEvent.VK_0&&code<=KeyEvent.VK_9)){
					System.out.println(KeyEvent.getKeyText(code)+"...是非法的");
					e.consume();
				}
			}
		});
		// 按钮的键盘事件
		but.addKeyListener(new KeyAdapter(){
			public void keyPressed(KeyEvent e){
				if(e.isControlDown()&&e.getKeyCode()==KeyEvent.VK_ENTER)	// 组合键:Ctrl+Enter
					System.out.println("ctrl+enter is run");
				// System.out.println(KeyEvent.getKeyText(e.getKeyCode())+"..."+e.getKeyCode());
				if(e.getKeyCode()==KeyEvent.VK_ENTER)	// 点击"Enter"键,退出程序
					System.exit(0);
			}
		});
		// 按钮发生操作时调用事件
		but.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){	//	按下某个键时调用此方法。
				System.out.println("action ok");
			}
		});
		// 按钮的鼠标事件
		but.addMouseListener(new MouseAdapter(){
			private int count = 1;
			private int clickCount=1;
			public void mouseEntered(MouseEvent e){	// 鼠标进入到组件上时调用。
				System.out.println("鼠标进入到该组件"+count++);
			}
			public void mouseClicked(MouseEvent e){	// 鼠标按键在组件上单击(按下并释放)时调用。
				if(e.getClickCount()==2)
					System.out.println("双击动作"+clickCount++);	
			}
		});
		
	}
	
	public static void main(String[] args){
		new MouseAndKeyEvent();
	}
}

 

相关标签: GUI