miércoles, octubre 08, 2008

Timer, retardo y ahorro de memoria en Java

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.

miércoles, octubre 01, 2008

Condicion Simple en Java (If en Java)

Buenos día un saludo, en esta ocación trabajaremos con las condiciones en java, en particular la sentencia IF. Una sentencia no es más que una toma de decisión, una decisión se toma cada vés, por ejemplo, puedes decidir venir o no a la escuela, decidir si ir al cine o no, en resumen, una decision consta de un factor que determina el planteamiento de un cuestionamiento, punto de partida para la toma de desicion y dos respuestas, una verdadera y una falsa.
Una condicion bien planteada debe contener condicionante, valor verdadero y valor falso. Un ejemplo bien planteado sería:
Supongase que se debe dirigir a un lugar especifico, para llegar a este lugar tiene dos opciones en taxi o en Bus.

ahora usted sabe que existen esos dos medios pero como saber cual usar, para ello entonces debemos establecer una condicionante que permita tomar dicha decisión, supongamos que el factor que determinara esto sera el tiempo, pero aun así es muy ambigüo, para ello entonces vamos a establecer una hora, supongamos que nuestra hora de entrada son las 8:00 am, bien dada esta situación y de acuerdo a los tiempos del transporte se puede tomar una decisión, en BUS llega en 30 min y el taxi en 15 min, ahora cual seria la condición.

Si falta 30 minutos para las 8 entonces se toma el Bus y de lo contrario se tomara un Taxi
La pregunta entonces sería, ¿Cual es cada uno de los factores en esta condición? Condicionante.- Que el tiempo faltante a la hora de entrada sea mayor o igual a 30 min Valor Verdadero.- El transporte sera Bus Valor Falso.- El transporte sera Taxi.

El problema que se tiene es como representar las condiciones de tal forma que el Lenguaje pueda entenderlo, para ello existen los operadores Mayor que (>), menor que (>) , igual (=), mayor o igual (>=) , menor o igual(<=) o el diferente (!=). De acuerdo a ellos es como se planteara la condicionante. de tal forma que ahora lo convertimos a una expresión entendible al lenguaje.
Condicionante.- Faltante<30
Valor verdadero.- El transporte es: Taxi
Valor Falso.- El transporte es: Bus


Ahora que tenemos las partes de la condición llega lo más importante, como representar esto con la sentencia if en Java, bien pues la sintaxis es la siguiente:

if (Condicionante)
{
instrucciones verdaderas.
}
else
{
instrucciones falsas.
}

Entonces la condicionante va entre parentesis, los primeros corchetes pertenecen al valor verdadero y despues viene una instrucción else, que significa sino, osea que si no se cumple la condición entonces van corchetes y se ejecutan las instrucciones falsas.

Nota: las llaves pueden ser omitidas cuando se trata de una sola instrucción, pero no cuando se trabaja con dos o más instriucciones.
Cree su archivo Bus_O_Taxi.java y pruebe el ejemplo siguiente:


Se menciono que los operadores pueden modificar el planteamiento de la condiconante, para ello pruebe el siguiente ejemplo:


Gracias por su lectura, agradecere tu comentario,
atte The Dzip.