Activación de eventos en Java cuando un objeto cambia de estado

Tengo un objeto en Java cuyo estado de cambios en el transcurso del tiempo. Cuando uno de los campos en el objeto alcanza un determinado valor, quiero un acontecimiento externo que se dispara.

Sé Swing maneja este patrón a través de los Oyentes – y estoy usando Swing para este proyecto -, pero no estoy seguro de qué tipo de Oyente sería aplicable a este caso. El estado del objeto no está siendo cambiado por el usuario, y los Oyentes parecen ser activado sólo por las acciones de los usuarios.

Editar: El objeto de que estoy de monitoreo no es en sí mismo un componente Swing – se ejecuta en segundo plano en el hilo principal.

  • Es que backend objeto escrito por usted, es decir. se puede modificar? No va a despedir a todos los eventos a menos que contenga el código que lo hace.
InformationsquelleAutor chimeracoder | 2010-11-09

3 Kommentare

  1. 2

    Independientemente de que el estado es cambiado por el usuario o no, realmente no importa. Puede invocar a la escucha de las devoluciones de llamada del método que cambia el estado y asegúrese de que el estado del objeto podría ser cambiado sólo a través de ese método:

    class A {
        public void changeState(State newState) {
             state = newState;
             for (SomeEventListenerInterface el : listeners) {
                  el.nofity(this, newState);
             }
        }
    }
  2. 1

    y Oyentes parecen ser activado sólo por las acciones de los usuarios.

    No siempre. Por ejemplo, cuando se cambia la propiedad de muchos de los componentes Swing (de fondo, tipo de letra, etc) un PropertyChangeEvent es despedido.

    Yo sugeriría usted puede también utilizar este evento. Lea la sección de la Oscilación tutorial sobre Cómo Escribir un Cambio de Propiedad de Escucha para un ejemplo.

    • Gracias – pero el objeto que estoy de monitoreo no es en realidad un componente Swing (se ejecuta en segundo plano en el hilo principal).
    • No tiene que ser un componente Swing. Te di el enlace equivocado a la vista. Usted puede utilizar el PropertyChangeSupport clase para ayudar a que usted se registre a los oyentes y el fuego de los eventos

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea