Hola que tal, pues esta vés explicaremos el uso de un timer en Java, es realmente muy sencillo, un timer consta de dos partes, el tiempo de retardo y las acciones que se ejecuran, en esta ocación hablaremos del Timer incluido en la libreria javax.swing.Timer, bueno es muy sencillo primero que nada se declara el objeto Timer, puede importar la libreria (import javax.swing.Timer), o bien hacerlo del modo largo para ahorro de memoria, que es el que se usara en este ejemplo, preste mucha atención. luego crearle el evento como se vera en la estructura completa.
javax.swing.Timer timer;
timer=new javax.swing.Timer
(
/*Retardo en milisegundos esto no va*/1000,new java.awt.event.ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent e)
{
//Instrucciones que realizara el Timer
}
}
);
Cabe mencionar que si no cuentas con algun contenido o una ventana, se cerrara el programa sin ejecutar el timer para ello debes agregar un retardo como el siguiente.
try
{
Thread.currentThread().sleep (10000);
} catch (Exception e)
{
}
y bueno el ejemplo que se maneja a continuación ara que una etiqueta gire al rededor de la ventada, bueno acá esta el codigó espero sus comentarios y resolvere dudad, hasta pronto.
public class Obj_Mov
{
//Declaraciones
javax.swing.Timer timer;//El timer
java.awt.Frame ventana;//La ventana
java.awt.Label etiqueta;//La Etiqueta
int Retardo=1000,izq=10,der=385,sup=35,inf=385,conth=10,conv=35;
public Obj_Mov()
{
//Procedimiento de Timer
timer=new javax.swing.Timer
(
Retardo,new java.awt.event.ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent e)
{
//Instrucciones que realizara el Timer
avanzar_derecha(conth,etiqueta);
avanzar_abajo(conv,etiqueta);
avanzar_izquierda(conth,etiqueta);
avanzar_arriba(conv,etiqueta);
}
}
);
ventana=new java.awt.Frame("Mi Ventana");
ventana.setBackground(java.awt.Color.black);
ventana.setBounds((1024/2)-200,(768/2)-200,400,400);
ventana.setLayout(null);
ventana.setVisible(true);
ventana.setResizable(false);
ventana.addWindowListener(new java.awt.event.WindowAdapter()
{
public void windowClosing(java.awt.event.WindowEvent e)
{
System.exit(0);
}
});
etiqueta= new java.awt.Label("*");
etiqueta.setBackground(java.awt.Color.cyan);
etiqueta.setBounds(10,35,5,5);
ventana.add(etiqueta);
timer.start();
}
public void avanzar_derecha(int contador,java.awt.Label cosa)
{
while (contador<=der)
{
cosa.setBounds(contador,35,5,5);
++contador;
}
conth=contador-1;
}
public void avanzar_abajo(int contador,java.awt.Label cosa)
{
while (contador<=inf)
{
cosa.setBounds(385,contador,5,5);
++contador;
}
conv=contador-1;
}
public void avanzar_izquierda(int contador,java.awt.Label cosa)
{
while (contador>=izq)
{
cosa.setBounds(contador,385,5,5);
--contador;
}
conth=contador+1;
}
public void avanzar_arriba(int contador,java.awt.Label cosa)
{
while (contador>=sup)
{
cosa.setBounds(10,contador,5,5);
--contador;
}
conv=contador+1;
}
public static void main (String a[])
{
Obj_Mov uno= new Obj_Mov();
/*Si no hay nada màs que el texto esto se para, pero se puede retardar con esto
try
{
Thread.currentThread().sleep (10000);
} catch (Exception e)
{
}
*/
}
}
Gracias por su lectura, agradecere tu comentario,
atte The Dzip.