UNIVERSIDAD MILITAR NUEVA GRANADA
Laboratorio 3. Temporizadores
Identificación:
GL-AA-F-1
Guías de Prácticas de Número de
Revisión No.:
Páginas:
Laboratorio 2
12
Fecha Emisión:
2018/01/31
Laboratorio de:
Programación 3
Título de la Práctica de Laboratorio:
Temporizadores
Elaborado por: Revisado por: Aprobado por:
Ing. Nathaly Sánchez, M.Sc. Ing. Alexandra Velasco, Ph.D. Ing. Dario Amaya, Ph.D.
Docente hora cátedra
Ing. Ricardo Castillo, Ph.D.
Docente tiempo completo Jefe de área robótica Director de Programa
Ing. Byron Pérez, M.Sc,
Docente tiempo completo
El uso no autorizado de su contenido así como reproducción total o parcial por cualquier persona o entidad, estará en Pagina 1 de 12
contra de los derechos de autor
UNIVERSIDAD MILITAR NUEVA GRANADA
Laboratorio 3. Temporizadores
Control de Cambios
Fecha de
Descripción del Cambio Justificación del Cambio Elaboración /
Actualización
Cambios en el Se modifica el entregable 2024/01/22
procedimiento con el fin de evitar plagios
Actualización del La temática no cambia, se 2024/07/12
procedimiento ajusta el entregable para
evitar plagios
Actualización del La temática no cambia, se 2025/17/01
procedimiento ajusta el entregable para
evitar plagios
El uso no autorizado de su contenido así como reproducción total o parcial por cualquier persona o entidad, estará en Pagina 2 de 12
contra de los derechos de autor
UNIVERSIDAD MILITAR NUEVA GRANADA
Laboratorio 3. Temporizadores
1. FACULTAD O UNIDAD ACADÉMICA: Ingeniería
2. PROGRAMA: Ingeniería Mecatrónica
3. ASIGNATURA: Programación 3
4. SEMESTRE: III
5. OBJETIVO:
General: Identificar la utilidad de los temporizadores en la programación de
computadores
Específicos:
• Utilizar temporizadores en aplicaciones de consola y gráficas
• Comparar diversos métodos para programar temporizadores
6. MATERIALES, REACTIVOS, INSTRUMENTOS, SOFTWARE, HARDWARE O
EQUIPOS DEL LABORATORIO:
DESCRIPCIÓN (Material,
reactivo, instrumento, software, CANTIDAD UNIDAD DE MEDIDA
hardware, equipo)
NA
7. MATERIALES, REACTIVOS, INSTRUMENTOS, SOFTWARE, HARDWARE O
EQUIPOS DEL ESTUDIANTE:
DESCRIPCIÓN (Material,
reactivo, instrumento, software, CANTIDAD UNIDAD DE MEDIDA
hardware, equipo)
Computador 1 NA
Software JDK SE (Java
Development Kit - Standard 1 NA
Edition)
Software Netbeans 1 NA
8. PRECAUCIONES CON LOS MATERIALES, REACTIVOS, INSTRUMENTOS Y
EQUIPOS A UTILIZAR:
El uso no autorizado de su contenido así como reproducción total o parcial por cualquier persona o entidad, estará en Pagina 3 de 12
contra de los derechos de autor
UNIVERSIDAD MILITAR NUEVA GRANADA
Laboratorio 3. Temporizadores
Utilizar adecuadamente el equipo de cómputo para realizar la práctica de
laboratorio.
9. PROCEDIMIENTO, MÉTODO O ACTIVIDADES:
1. Temporizadores
Los temporizadores son objetos de la clase Timer que se utiliza para programar
una tarea que se ejecutará después de un período de tiempo específico. Las
tareas se pueden programar para una ejecución única o para una ejecución
repetida periódicamente.
Se pueden crear varios objetos de la clase Timer, pero hay un único hilo en
segundo plano que supervisa la ejecución de las tareas de cada Timer.
Figura 1. Diagrama de un temporizador.
https://www.educative.io/api/edpresso/shot/6555544254939136/image/5343429506629632
2. Clase Timer del paquete java.util
Constructor:
Timer temporizador = new Timer();
Métodos:
cancel(): Finaliza el temporizador, descartando cualquier tarea programada
actualmente.
El uso no autorizado de su contenido así como reproducción total o parcial por cualquier persona o entidad, estará en Pagina 4 de 12
contra de los derechos de autor
UNIVERSIDAD MILITAR NUEVA GRANADA
Laboratorio 3. Temporizadores
schedule(TimerTask task, Date time): Programa la tarea especificada para su
ejecución a la hora especificada.
scheduleAtFixedRate(TimerTask task, long delay, long period): Programa la
tarea especificada para su ejecución después de delay ms y cada period ms.
3. Clase TimerTask del paquete java.util
Constructor:
TimerTask timerTask = new TimerTask();
Métodos:
run(): Contiene el código que se quiere ejecutar en el temporizador
4. Ejemplos:
Temporizador que se ejecuta una única vez:
import java.util.Timer;
import java.util.TimerTask;
public class Temporizador0 {
Timer timer;
public Temporizador0(int segundos) {
timer = new Timer();
timer.schedule(new Recordatorio(),segundos*1000);//Programa la tarea
}
class Recordatorio extends TimerTask {
public void run() {
System.out.println("Tiene un recordatorio!");
timer.cancel(); //Termina el hilo del timer
}
}
public static void main(String args[]) {
System.out.println("Inicio del programa");
new Temporizador0(5);
}
}
El uso no autorizado de su contenido así como reproducción total o parcial por cualquier persona o entidad, estará en Pagina 5 de 12
contra de los derechos de autor
UNIVERSIDAD MILITAR NUEVA GRANADA
Laboratorio 3. Temporizadores
Temporizador que se ejecuta periódicamente:
import java.util.Timer;
import java.util.TimerTask;
public class Temporizador1 {
public static void main(String[] args){
TimerTask timertask = new TimerTask() {
int i=0;
@Override
public void run() {
System.out.println("Hola "+i);
i++;
}
};
Timer timer = new Timer();
timer.scheduleAtFixedRate(timertask, 0, 2000);
}
};
Temporizador que se ejecuta periódicamente en interfaz gráfica:
Figura 2. Interfaz gráfica con jLabel1 y un jButton1
El uso no autorizado de su contenido así como reproducción total o parcial por cualquier persona o entidad, estará en Pagina 6 de 12
contra de los derechos de autor
UNIVERSIDAD MILITAR NUEVA GRANADA
Laboratorio 3. Temporizadores
Figura 3. Interfaz gráfica con jLabel1 desplazado hacia la izquierda después de
un tiempo de funcionamiento del temporizador.
public class Temporizador2 extends javax.swing.JFrame {
Timer timer;
TimerTask timertask;
Boolean funcionando = false;
public Temporizador2() {
initComponents();
}
@SuppressWarnings("unchecked")
private void initComponents() {
//Código generado por Netbeans
}
//Código del botón para iniciar y detener el Timer
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)
{
if (!funcionando) {
timer = new Timer();
timertask = new TimerTask() {
int i = 5;
@Override
public void run() {
jLabel1.setLocation(i, 19); //Ubica el jLabel1 en las
i++; //coordenadas (i,19)
}
};
El uso no autorizado de su contenido así como reproducción total o parcial por cualquier persona o entidad, estará en Pagina 7 de 12
contra de los derechos de autor
UNIVERSIDAD MILITAR NUEVA GRANADA
Laboratorio 3. Temporizadores
timer.scheduleAtFixedRate(timertask, 0, 100);//cada 100ms se
// ejecuta el código del TimerTask
funcionando = true;
jButton1.setText("Detener");
} else {
timer.cancel(); //Cancela el Timer
funcionando = false;
jButton1.setText("Iniciar");
}
}
public static void main(String args[]) {
//Código generado por Netbeans
}
private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel1;
}
5. Clase Timer del paquete javax.swing
Constructor:
Timer (int delay, ActionListener listener)
Crea un temporizador e inicializa tanto el retraso inicial como el retraso entre
eventos en milisegundos. Requiere de una interfaz ActionListener para
programar las tareas que se van a ejecutar periódicamente.
Métodos:
start() : Inicia el temporizador y comienza a enviar eventos de acción a sus
listeners.
stop(): Detiene el temporizador y deja de enviar eventos de acción a sus
listeners.
isRunning():Devuelve true si el temporizador se está ejecutando
6. Ejemplo:
Temporizador que se ejecuta periódicamente en interfaz gráfica:
import javax.swing.Timer;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
El uso no autorizado de su contenido así como reproducción total o parcial por cualquier persona o entidad, estará en Pagina 8 de 12
contra de los derechos de autor
UNIVERSIDAD MILITAR NUEVA GRANADA
Laboratorio 3. Temporizadores
public class Temporizador3 extends javax.swing.JFrame {
Timer temporizador;
ActionListener al;
public Temporizador3() {
initComponents();
al = new ActionListener() {
int i=0;
@Override
public void actionPerformed(ActionEvent e) {
double x = 50+10*Math.sin(2*Math.PI/10*(double)i);
jRadioButton1.setLocation((int)x, i);
//Mueve senosoidalmente el botón de radio
//A*sen(wt); A es amplitud y w es 2*PI/T
i++;
}
};
temporizador = new Timer(100, al); //Cada 100ms se llama al
}
@SuppressWarnings("unchecked")
private void initComponents() {
//Código generado por Netbeans
}
//Código del botón para iniciar y detener el Timer
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt){
if (!temporizador.isRunning()) {
temporizador.start();
jButton1.setText("Detener");
} else {
temporizador.stop();
jButton1.setText("Iniciar");
}
}
public static void main(String args[]) {
//Código generado por Netbeans
}
private javax.swing.JButton jButton1;
private javax.swing.JRadioButton jRadioButton1;
}
El uso no autorizado de su contenido así como reproducción total o parcial por cualquier persona o entidad, estará en Pagina 9 de 12
contra de los derechos de autor
UNIVERSIDAD MILITAR NUEVA GRANADA
Laboratorio 3. Temporizadores
Figura 4. Interfaz gráfica con jRadioButton1 y jButton1
Figura 5. Temporizador funcionando.
7. Ejercicio aplicado usando temporizadores
A partir del ejercicio realizado en clase, elaborar un programa que permita simular
gráficamente una competencia
automovilística de diez vehículos, diseñe cada uno de ellos usando herramientas de
Java2D.
Cada vehículo debe tener una velocidad aleatoria.
El uso no autorizado de su contenido así como reproducción total o parcial por cualquier persona o entidad, estará en Pagina 10 de 12
contra de los derechos de autor
UNIVERSIDAD MILITAR NUEVA GRANADA
Laboratorio 3. Temporizadores
Al final debe hacer una tabla ordenada con los tiempos de menor a mayor iniciando
por el ganador.
Permita que el usuario pueda apostar por algún vehículo antes de que inicie el juego
y anuncie si el vehículo seleccionado fue el ganador o no.
Finalice con un slider que permita acelerar o desacelerar el tiempo general del juego.
8. RESULTADOS ESPERADOS:
El estudiante debe estar en capacidad de construir y ejecutar aplicaciones en el
IDE NetBeans utilizando el lenguaje de programación orientado a objetos JAVA.
9. CRITERIO DE EVALUACIÓN A LA PRESENTE PRÁCTICA:
El estudiante debe entregar el programa funcionando, su código fuente y
sustentar su funcionamiento.
Criterio No Cumple Cumple
cumple parcialmente totalmente
Sustenta satisfactoriamente y responde a las 0 0.7 1.4
preguntas del docente
Implementa los algoritmos solicitados 0 1.5 3
Presenta claridad y orden y el código desarrollado es 0 0.3 0.6
orientado a objetos
Total 5.0
10. REFERENCIAS
[1] NetBeans IDE. (2013). Tutorial Quick Start Guide. Apache NetBeans.
https://netbeans.org/kb/docs/java/quickstart.html
[2] Deitel, P. J., & Deitel, H. M. (2016). Java: como programar. Pearson educación.
http://www.ebooks7-24.com.ezproxy.umng.edu.co/?il=4371
[3] Joyanes Aguilar, L., & Zahonero, I. (2008). Estructuras de datos en Java.
McGraw-Hill
[4] Cormen, T. H., Leiserson, C. E., Rivest, R. L., & Stein, C. (2009). Introduction to
algorithms. MIT press.
El uso no autorizado de su contenido así como reproducción total o parcial por cualquier persona o entidad, estará en Pagina 11 de 12
contra de los derechos de autor
UNIVERSIDAD MILITAR NUEVA GRANADA
Laboratorio 3. Temporizadores
El uso no autorizado de su contenido así como reproducción total o parcial por cualquier persona o entidad, estará en Pagina 12 de 12
contra de los derechos de autor