Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Los Tutoriales de Java se han escrito para JDK 8. Los ejemplos y prácticas descritos en esta página no aprovechan las mejoras introducidas en
versiones posteriores y podrían usar tecnología que ya no está disponible.
Consulte las Notas de la versión de JDK para obtener información sobre nuevas funciones, mejoras y opciones eliminadas o en desuso para todas las
versiones de JDK.
En general, recomendamos usar temporizadores Swing en lugar de temporizadores de propósito general para tareas relacionadas con la GUI porque
todos los temporizadores Swing comparten el mismo subproceso de temporizador preexistente y la tarea relacionada con la GUI se ejecuta
automáticamente en el subproceso de envío de eventos. Sin embargo, puede usar un temporizador de uso general si no planea tocar la GUI del
temporizador o si necesita realizar un procesamiento prolongado.
Los temporizadores de oscilación son muy fáciles de usar. Cuando crea el temporizador, especifica un oyente de acción para que se le notifique
cuando el temporizador "se apaga". El actionPerformedmétodo en este oyente debe contener el código para cualquier tarea que necesite realizar.
Cuando crea el temporizador, también especifica el número de milisegundos entre los disparos del temporizador. Si desea que el temporizador se
active solo una vez, puede invocarlo setRepeats(false). Para iniciar el temporizador, llame a su startmétodo. Para suspenderlo, llame stop.
Tenga en cuenta que la tarea del temporizador Swing se realiza en el subproceso de envío de eventos. Esto significa que la tarea puede manipular
componentes de manera segura, pero también significa que la tarea debe ejecutarse rápidamente. Si la tarea puede tardar un tiempo en ejecutarse,
considere usar un SwingWorkertemporizador en lugar de o además de él. Consulte Concurrencia en Swing para obtener instrucciones sobre el uso
de la SwingWorkerclase e información sobre el uso de componentes Swing en programas de subprocesos múltiples.
Veamos un ejemplo del uso de un temporizador para actualizar periódicamente un componente. El TumbleItemapplet usa un temporizador para
actualizar su pantalla a intervalos regulares. (Para ver este applet ejecutándose, vaya a Cómo hacer applets . Este applet comienza creando y
comenzando un temporizador:
Las variables speedy pauserepresentan parámetros de applet; como se configuró en la otra página, estos son 100 y 1900 respectivamente, de modo
que el primer evento del temporizador ocurrirá en aproximadamente 1.9 segundos y se repetirá cada 0.1 segundos. Al especificar thiscomo el
segundo argumento para el Timerconstructor, TumbleItemespecifica que es el oyente de acción para eventos de temporizador.
Después de iniciar el temporizador, TumbleItemcomienza a cargar una serie de imágenes en un hilo de fondo. Mientras tanto, los eventos del
temporizador comienzan a ocurrir, haciendo que el actionPerformedmétodo se ejecute:
if (loopslot> = nimgs) {
ranura de bucle = 0;
apagado + = desplazamiento;
si (apagado <0) {
off = ancho - maxWidth;
} else if (off + maxWidth> width) {
apagado = 0;
}
}
animator.repaint ();
if (loopslot == nimgs - 1) {
timer.restart ();
}
}
Hasta que se cargan las imágenes, worker.isDoneregresa false, por lo que los eventos del temporizador se ignoran efectivamente. La primera
parte del código de manejo de eventos simplemente establece los valores que se emplean en el paintComponentmétodo de control de animación :
loopslot(el índice del siguiente gráfico en la animación) y off(el desplazamiento horizontal del siguiente gráfico).
Finalmente, loopslotllegará al final de la matriz de imágenes y comenzará de nuevo. Cuando esto sucede, el código al final de
actionPerformedreinicia el temporizador. Hacer esto provoca un breve retraso antes de que la secuencia de animación comience nuevamente.
About Oracle | Contact Us | Legal Notices | Terms of Use | Your Privacy Rights | Cookie Preferences | Ad Choices
Copyright © 1995, 2019 Oracle and/or its affiliates. All rights reserved.