GUI MouseKeyboard
import java.awt.Button;
import java.awt.Event;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.TextField;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class MouseKeyboardDemo {
private Frame f;
private Button but;
private TextField tf;
//构造函数
public MouseKeyboardDemo() {
// TODO Auto-generated constructor stub
// super();
init();//创建匿名类方法
}
//先把组件明确,在一个方法中分别对其初始化。
private void init() {
// TODO Auto-generated method stub
f = new Frame("鼠标和键盘监听");
f.setVisible(true);
f.setBounds(900,200,300,400);
f.setLayout(new FlowLayout());
tf = new TextField(20);//(文本,列数)
f.add(tf);
but = new Button("一个按钮");
f.add(but);
myEvent();//创建事件方法
}
private void myEvent() {
// TODO Auto-generated method stub
f.addWindowListener(new WindowAdapter() {
//覆盖方法
@Override
public void windowClosing(WindowEvent e) {
// TODO Auto-generated method stub
// super.windowClosing(e);
System.exit(0);
}
});
//在按钮上添加一个鼠标监听器
but.addMouseListener(new MouseAdapter() {
private int count = 1;
//鼠标进到组件时触发
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
super.mouseEntered(e);
// System.out.println("mouse enter ..." + count++);
// tf.setText("mouse enter ..." + count++);
}
//覆盖点击事件 单击
@Override
// public void mouseClicked(MouseEvent e) {
// // TODO Auto-generated method stub
// super.mouseClicked(e);
// System.out.println("mouse clicked ..." + count++);
// f.setText("mouse click ..." + count++);
// }
//覆盖双击事件
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
super.mouseClicked(e);
// System.out.println(e);//产生MouseEvent事件...clickCount=1
if(e.getClickCount()==2) {
tf.setText("mouse double click ..." + count++);
}
}
});//end but.addMouseListener(new MouseAdapter()
//给文本框添加键盘监听
tf.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub
super.keyPressed(e);
// System.out.println(e);
// System.out.println("key run ...");
//每个键对应一个键盘码
System.out.println(e.getKeyCode() +":"+ KeyEvent.getKeyText(e.getKeyCode()));
//输入数字
int code = e.getKeyCode();
if(!(code>=KeyEvent.VK_0 && code<=KeyEvent.VK_9)) {
System.out.println("必须是数字");
e.consume();//使用此事件,以便不会按照默认的方式由产生此事件的源代码来处理此事件.
}
//回车
if(e.getKeyCode()==KeyEvent.VK_ENTER) {
System.out.println("enter run ...");
}
//ctrl + 回车
if(e.isControlDown() && e.getKeyCode()==KeyEvent.VK_ENTER) {
System.out.println("ctrl + enter run ...");
}
}//end keyPressed(KeyEvent e)
});//end tf.addKeyListener(new KeyAdapter()
}//end myEvent
public static void main(String[] args) {
// TODO Auto-generated method stub
//new一个对象
new MouseKeyboardDemo();
}
}//end class