事件监听机制的组成
1.事件源(组件)
2.事件(Event)
3.监听器(Listener)
4.发生事件后的处理方式
------------------------------------------------------------------------------
例如在窗体上和在按钮上添加监听的方法如下:
public class FrameDemo {
public static void main(String[] args) {
Frame f = new Frame("my frame");
f.setBounds(400, 200, 500, 400);
f.setLayout(new FlowLayout());//设置流式布局
Button but = new Button("一个按钮");
f.add(but);//将按钮添加到窗体中。
f.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.out.println("closing......."+e);
System.exit(0);
}
});
//在按钮上加上一个监听。
but.addActionListener(new ActionListener() {
// 新建一个监听器对象,这里用的匿名内部类方式,并注册到事件源上
@Override
//监听器对象监听的某种事件,就是在这个类内定义的方法
public void actionPerformed(ActionEvent e) { //监听某种事件发生后就形成一个对象传到这个方法,就像catch到的e一样,是自动传进来的
//监听到这个事件要采取的动作,就是这个方法的内容
System.out.println("button run .....");
System.exit(0);
}
});
f.setVisible(true);
System.out.println("over");
}}
-------------------------------------------------------------------------------------------------------
例如在添加鼠标和键盘监听的方法如下:
public class MouseAndKeyDemo {
private Frame f;
private TextField tf;
private Button but;
public static void main(String[] args) {
new MouseAndKeyDemo();
}
public MouseAndKeyDemo() {
init();
}
private void init() {
f = new Frame("演示鼠标和键盘监听");
f.setBounds(400,200,500,400);
f.setLayout(new FlowLayout());
tf = new TextField(35);
but = new Button("一个按钮");
f.add(tf);
f.add(but);
myEvent();
f.setVisible(true);
}
private void myEvent() {
//给文本框添加键盘监听。
tf.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
// System.out.println("key run..."+KeyEvent.getKeyText(e.getKeyCode())+"::::"+e.getKeyCode());
// int code = e.getKeyCode();
// if(!(code>=KeyEvent.VK_0 && code<=KeyEvent.VK_9)){
// System.out.println("必须是数字");
// e.consume();
// }
if(e.isControlDown() && e.getKeyCode()==KeyEvent.VK_ENTER){
System.out.println("enter run ...");
}
}
});
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
but.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// System.out.println("action run.....");
}
});
//在按钮上添加一个鼠标监听.
but.addMouseListener(new MouseAdapter() {
private int count = 1;
public void mouseEntered(MouseEvent e) {
// System.out.println("mouse enter..."+count++);
// tf.setText("mouse enter..."+count++);
}
public void mouseClicked(MouseEvent e) {
if(e.getClickCount()==2)
tf.setText("mouse double click..."+count++);
// System.out.println("mouse click..."+count++);
// System.out.println(e);
}
});
}

本文详细介绍了Java中事件监听机制的四个组成部分:事件源、事件、监听器及事件处理方式。通过具体示例展示了如何为窗体和按钮添加事件监听器,以及如何实现鼠标和键盘的监听功能。

9万+

被折叠的 条评论
为什么被折叠?



