¿Por qué no se dispara mi escucha de propiedad?

Así es como se ve mi código:

Class A {

  private boolean valueChanged;

  public static void main(String args[]) {

    B obj = new B();
    obj.addPropertyChangeListener("valueChanged", new ValueChangeListener());
    obj.someMethodThatFiresChange();
 }

  private class ValueChangeListener implements PropertyChangeListener {
    public void propertyChange(PropertyChangeEvent evt) {
         if(Boolean.TRUE.equals(evt.getNewValue()) {
            doSomething(); //code never breaks here!!
         }
    }
  }

}

Class B {

 private boolean valueChanged;

 public void setValueChanged(boolean b) { 

     boolean oldVal = valueChanged;
     valueChanged = b;
     firePropertyChange("valueChanged", oldVal, valueChanged);
 }

 public void someMethodThatFiresChange() {
     setValueChanged(true);
 }

}  

Sin embargo, este código no parece funcionar: ¡nunca llega al bloque que se supone que debe ejecutarse cuando se dispara el evento! ¿Qué estoy haciendo mal aquí?

Respuesta 1

Tengo una aplicación (Swing + AWT) que usa una biblioteca jar externa (llamando a un método principal dentro de ella). Esta aplicación externa abre una ventana cada vez que ocurre un evento (por ejemplo, un botón es ...

Así que podría poner todos mis métodos en el mismo archivo donde está mi método principal, pero personalmente odio llenar un archivo lleno de métodos en los que trabajaré una vez y nunca volveré. solo parecen entrar ...

Hay una interfaz: interfaz IEventListener {void onEvent (Lista de eventos <IEvent>); } Hay una clase de evento: class EventB {private final int id; final privado A a; final privado ...

Actualmente estoy usando este código para la detección de colisión en 2D en mis juegos de Space Invaders: for (byte k = 0; k <enemmes.length; k ++) {if (shot.x <enemigos [k] .getTexture (). GetImageWidth ( ) Y ...