本文以最简单的按钮的鼠标事件为例说明Java事件处理(awt)的方法。
首先我们应该清楚:所有的事件都最终派生自 java.util.EventObject 类
而本文中的MouseEvent当然也是不例外。
另外 本文中的两个重要的接口 MouseListener,MouseMotionListener 非常重要,他们是事件的监听器,用来监听事件的触发并处理。一个监听器类可以实现多个接口,可以同时处理多个事件。
本文不会用文字太繁琐的介绍事件的处理原理,只给出一个简单的例子。我们可以通过一个简单的例子,认真地揣摩。必要的时候,可以到互联网上查阅相关资料。有的写得非常的详细,但是你必须有耐心看。
例子如下:
import javax.swing.*;import java.awt.*;import java.awt.event.*; public class event1{ public static void main(String[] args) { JFrame f=new JFrame("测试一下 Event "); Container c=f.getContentPane(); FlowLayout flo=new FlowLayout(); c.setLayout(flo); JButton b1=new JButton("left"); JButton b2=new JButton("right"); c.add(b1); c.add(b2); //Add listeners MouseListener l = new ExampleMouseListener(); MouseMotionListener m = new ExampleMouseListener(); b1.addMouseListener(l); b2.addMouseListener(l); b1.addMouseMotionListener(m); b2.addMouseMotionListener(m); f.pack(); f.setVisible(true); } } //Mouse listener class class ExampleMouseListener implements MouseListener,MouseMotionListener{ //MouseListener interface public void mousePressed(MouseEvent evt){ System.out.println("Mouse pressed:" + evt); } public void mouseReleased(MouseEvent evt){ System.out.println("Mouse released: " + evt); } public void mouseClicked(MouseEvent evt){ System.out.println("Mouse clicked" + evt); } public void mouseEntered(MouseEvent evt){ System.out.println("Mouse entered" + evt); } public void mouseExited(MouseEvent evt){ System.out.println("Mouse exited" + evt); } public void mouseMoved(MouseEvent evt){ System.out.println("Mouse moved" + evt); } public void mouseDragged(MouseEvent evt){ System.out.println("Mouse dragged" + evt); } }