java 如何添加监听
添加事件监听的方法
在Java中,事件监听通常用于图形用户界面(GUI)编程,如Swing或JavaFX。以下是几种常见的事件监听实现方式:
Swing中的按钮点击监听
JButton button = new JButton("Click Me");
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Button clicked");
}
});
JavaFX中的按钮点击监听
Button button = new Button("Click Me");
button.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
System.out.println("Button clicked");
}
});
使用Lambda表达式简化
Java 8及以上版本可以使用Lambda表达式简化监听器代码:
Swing示例
button.addActionListener(e -> System.out.println("Button clicked"));
JavaFX示例
button.setOnAction(event -> System.out.println("Button clicked"));
键盘事件监听
Swing键盘监听
JTextField textField = new JTextField();
textField.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
System.out.println("Key pressed: " + e.getKeyChar());
}
});
鼠标事件监听
Swing鼠标监听
JPanel panel = new JPanel();
panel.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
System.out.println("Mouse clicked at: " + e.getPoint());
}
});
自定义事件监听
可以创建自定义事件监听接口:
public interface CustomEventListener {
void onEvent(String message);
}
public class EventSource {
private CustomEventListener listener;
public void setListener(CustomEventListener listener) {
this.listener = listener;
}
public void triggerEvent() {
if(listener != null) {
listener.onEvent("Custom event occurred");
}
}
}
观察者模式实现
Java标准库提供了Observable类和Observer接口:

public class MyObservable extends Observable {
public void changeState() {
setChanged();
notifyObservers("State changed");
}
}
public class MyObserver implements Observer {
@Override
public void update(Observable o, Object arg) {
System.out.println("Received update: " + arg);
}
}
// 使用
MyObservable observable = new MyObservable();
observable.addObserver(new MyObserver());
observable.changeState();
以上方法涵盖了Java中实现事件监听的常见方式,可根据具体需求选择合适的方法。






