Tengo un temporizador Swing (javax.swing.Timer) que se utiliza para realizar algunas animaciones dentro de un componente Swing personalizado.Parando un temporizador Swing cuando un componente está oculto
Sin embargo, esto está causando problemas, en particular, parece detener la finalización de la aplicación debido a la secuencia del temporizador en vivo incluso después de que se cierran todas las ventanas. También sería bueno evitar la sobrecarga de los temporizadores que se ejecutan en objetos ocultos cuando la animación no se puede ver.
Idealmente me gustaría hacer lo siguiente:
- Detener el temporizador cuando el componente está oculto
- de inicio del tiempo de nuevo cuando el componente se hace visible
Es esto posible hacer (en una forma segura de hilo, por supuesto!)
hmm .. lo que está mal con un ancestorListener (que sería mi primer pensamiento)? – kleopatra
O puede agregar un [ComponentListener] (http://docs.oracle.com/javase/7/docs/api/java/awt/event/ComponentListener.html) y agregar ** timer.start()/stop() dentro de sus métodos componentHidden (...) y componentShown (...) ** –
@GagandeepBalin un componenteListener solo es un tipo de propertyChangeListener a la propiedad visible de un componente único, que no se cambia si fiun ancestro está oculto/mostrado. – kleopatra