用Java创建自定义监听器

Pjr*_*111 14 java swing listener

我想知道如何为某些东西创建我自己的监听器,并且能够像任何其他监听器一样使用它,例如.

public interface Listener {

    public void onListen(Event e);

}
Run Code Online (Sandbox Code Playgroud)

然后在我的班上

public class test implements Listener {

    Object.add(new Listener() { 

        @Override
        public void onListen(Event e) {

        }
    });
}
Run Code Online (Sandbox Code Playgroud)

我想我真正要问的是,我在哪里定义如何检查是否发生了与我创建的监听器有关的事情?

如果其中任何一个没有意义,请告诉我,我会澄清它.

如果充其量这对你没有意义,我会尝试这个.如何让侦听器检查组合框中的选定选项是否已更改为其他选项.我实际上并不需要一个组合框监听器,这只是一个例子.

Seb*_*ian 17

这是一个简短的例子:

    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();
    }
Run Code Online (Sandbox Code Playgroud)

  • 另请参见[`EventListenerList`](http://docs.oracle.com/javase/6/docs/api/javax/swing/event/EventListenerList.html). (3认同)