Java PropertyChangeListener

Estoy tratando de descubrir cómo escuchar un cambio de propiedad en otra clase. Abajo está mi código:

ClassWithProperty tiene la propiedad que quiero escuchar:

public class ClassWithProperty {
    private PropertyChangeSupport changes = new PropertyChangeSupport(this); 
    private int usersOnline;

    public int getUsersOnline() {
        return usersOnline;
    }

    public ClassWithProperty() {
        usersOnline = 0;
        while (usersOnline<10) {
            changes.firePropertyChange("usersOnline", usersOnline, usersOnline++);
        }
    }

    public void addPropertyChangeListener(
        PropertyChangeListener l) {
        changes.addPropertyChangeListener(l);
    }
    public void removePropertyChangeListener(
        PropertyChangeListener l) {
        changes.removePropertyChangeListener(l);
    }
}

Principal es donde necesito saber sobre el cambio de propiedad:

public class Main {

    private static ClassWithProperty test;

    public static void main(String[] args) {
        test = new ClassWithProperty();
        test.addPropertyChangeListener(listen());

    }

    private static PropertyChangeListener listen() {
        System.out.println(test.getUsersOnline());
        return null;
    }

}

El evento se activó solo la última vez (usersOnline = 10). Soy nuevo en Java e intenté encontrar una solución, pero fue en vano.

Respuestas a la pregunta(2)

Su respuesta a la pregunta