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();
}
}
上一篇: Python中字典的setdefault()方法教程
下一篇: python内建数据类型有哪些