刚才我们看到一个 BT 的例子,在实现 MouseListener 接口时必须要撰写处理每一个鼠标事件的方法。这里介绍 Adapter 。轻松点。
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
public class MouseEventAdapterDemo extends Applet {
BlankArea blankArea;
TextArea textArea;
static final int maxInt = java.lang.Integer.MAX_VALUE;
String newline;
public void init() {
GridBagLayout gridbag = new GridBagLayout();
GridBagConstraints c = new GridBagConstraints();
setLayout(gridbag);
c.fill = GridBagConstraints.BOTH;
c.gridwidth = GridBagConstraints.REMAINDER;
c.weightx = 1.0;
c.weighty = 1.0;
c.insets = new Insets(1, 1, 1, 1);
blankArea = new BlankArea(new Color(0.98f, 0.97f, 0.85f));
gridbag.setConstraints(blankArea, c);
add(blankArea);
c.insets = new Insets(0, 0, 0, 0);
textArea = new TextArea(5, 20);
textArea.setEditable(false);
gridbag.setConstraints(textArea, c);
add(textArea);
//Register for mouse events on blankArea and applet (panel).
blankArea.addMouseListener(new MyEvent());
addMouseListener(new MyEvent());
newline = System.getProperty("line.separator");
}
class MyEvent extends MouseAdapter {
public void mousePressed(MouseEvent e) {
saySomething("Mouse pressed; # of clicks: " + e.getClickCount(), e);
}
void saySomething(String eventDescription, MouseEvent e) {
textArea.append(
eventDescription
+ " detected on "
+ e.getComponent().getClass().getName()
+ newline);
textArea.setCaretPosition(maxInt); //hack to scroll to bottom
}
}
}
无须多说了。