[英]Creating Custom Listeners In Java
我想知道如何为某些东西创建我自己的监听器,并且能够像任何其他监听器一样使用它,例如。
public interface Listener {
public void onListen(Event e);
}
然后在我的班上
public class test implements Listener {
Object.add(new Listener() {
@Override
public void onListen(Event e) {
}
});
}
我想我真正要问的是,我在哪里定义如何检查是否发生了与我创建的监听器有关的事情?
如果其中任何一个没有意义,请告诉我,我会澄清它。
如果充其量这对你没有意义,我会尝试这个。 如何让侦听器检查组合框中的选定选项是否已更改为其他选项。 我实际上并不需要一个组合框监听器,这只是一个例子。
这是一个简短的例子:
private static class Position {
}
private static class Ball {
private ArrayList<FootballObserver> observers = new ArrayList<FootballObserver>();
private Position ballPosition = new Position();
public void registerObserver(FootballObserver observer) {
observers.add(observer);
}
public void notifyListeners() {
for(FootballObserver observer : observers) {
observer.notify(ballPosition);
}
}
public void doSomethingWithFootballPosition() {
//bounce etc
notifyListeners();
}
}
private static interface FootballObserver {
void notify(Position ball);
}
private static class Player implements FootballObserver {
public void notify(Position ball) {
System.out.println("received new ball position");
}
}
public static void main(String... args) {
FootballObserver player1 = new Player();
Ball football = new Ball();
football.registerObserver(player1);
football.doSomethingWithFootballPosition();
}
创建所需的侦听器没有问题,但是只能将它应用于期望它的类(所以你不能这样做(new Object()).addMyListener
)
您需要向要使用侦听器的类添加addMyListener(MyListener myListener)
方法。 它只是将您传递给它的侦听器存储在列表中供以后用户使用。 使用addMyListener方法(以及fireMyListeners()
)方法创建接口也是一个好主意。
当然,您还必须提供代码来调用fireMyListeners()
方法。 然后fireMyListeners()
将循环遍历监听器并调用他们的通知方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.