sábado, 26 de septiembre de 2009

If anidados y JAVAFX

En este ejemplo se requiere lo siguiente:

Leer dos números si son iguales deben de multiplicarse, si el primero es mayor que el segundo debe de restar el segundo al primero y si no se cumple ninguna de las dos condiciones anteriores deben de sumarse.


Nota: Este ejemplo ha sido desarrollado usando NetBeans 6.7.1 y JavaFX Script.
Primero comenzamos con definir las librerías que vamos a necesitar.


import javafx.scene.Scene;
import javafx.ext.swing.*;
import javax.swing.JOptionPane;
import javafx.stage.AppletStageExtension;
import javafx.stage.Stage;
import javafx.scene.input.MouseEvent;


En segunda instancia definiremos las variables que utilizaremos en nuestro programa, yo las nombre x1 para el número 1 y y1 para el número 2, resultados es la variable que mostrará los resultados.


var x1;
var y1;
var resultados;


Ahora comenzamos a crear nuestros diálogos de Textos para que el usuario pueda escribir los números.


El primero lo llame texto1 y esta definido de la siguiente manera:


var texto1 = SwingTextField
{
columns: 10 //Establece el máximo de texto
editable: true; // Si es editable
translateX: 120; // Coordenada X donde estará ubicado
translateY: 10; // Coordenada Y donde estará ubicado.
}


Como segunda instancia tengo definido texto2 para que el usuario escriba el segundo número.


var texto2 = SwingTextField
{
columns: 10 //Establece el máximo de texto
editable: true; // Si es editable
translateX: 120; // Coordenada x
translateY: 30; // Coordenada Y
}


Por último cree otro campo de texto pero de solo lectura al cual llame resultado donde se ha de mostrar el resultado según lo que procesada del problema.


var resultado = SwingTextField
{
columns: 10; // Establece el máximo de texto
editable: false; // No es editable
translateX: 120; // Coordenada x
translateY: 60; // coordenada Y
}


Finalmente creare un botón el cual ha de contener una función para realizar la comparación que se me esta pidiendo en el problema.


var comparar = SwingButton
{
text: "Comparar"; // Nombre que mostrará el botón (Etiqueta=
translateX: 0; // Coordenada X
translateY: 100; // Coordenada Y
action: function () // El Botón tiene una función.
{
try // Atrapar excepciones producidas por errores
{
x1 = Integer.parseInt(texto1.getJTextField().getText()); // x1 toma el valor de texto1
y1 = Integer.parseInt(texto2.getJTextField().getText()); // y1 toma el valor de texto2
if ( x1 == y1) // Compara si ambas son iguales entonces
{
resultados = x1 * y1; // Multiplica
}
else // si no son iguales entonces
{
if (x1 > y1) // Si x1 es mayor que y1
{
resultados = x1 - y1; // hace una resta
}
else // si no es ninguna de las anteriores
{
resultados = y1 + x1; // suma valores
} // fin si
}// fin si
resultado.getJTextField().setText("{resultados}"); // resultado toma el valor de resultados
}
catch (e) //atrapar excepcion
{
JOptionPane.showMessageDialog(null,"Solo se aceptan valores tipo entero número.", "Error", JOptionPane.ERROR_MESSAGE); //mostrar este mensaje si se ha producido una excepción.
}
}// fin del método del botón.
}// fin de la variable botón

Ahora creare un stage que será mi aplicación en si.
Stage {
title : "Comparación de Números" // Defino el título que tendrá la ventana
width: 250 // Ancho de la ventana
height: 200 // Alto de la ventana
/*Esto de aquí es opcional y sirve para que nuestro Applet pueda ser "sacado"
del navegador */
extensions: AppletStageExtension {
shouldDragStart: function(e: MouseEvent): Boolean {
e.primaryButtonDown;
}
}
//Creamos nuestra escena
scene: Scene {
//Contenido de la escena
content: [
//Inicialización de variables.
texto1,
texto2,
resultado,
comparar,
//Una etiqueta que pide al usuario introducir un número X
SwingLabel {
text: "Escribe un número X:";
translateX: 0;
translateY: 10;
}
//Una etiqueta que pide al usuario introducir un número Y
SwingLabel {
text: "Escribe un número Y: "
translateX: 0;
translateY: 30;
}
//Una etiqueta que muestra el resultado al usuario
SwingLabel
{
text: "Resultado";
translateX: 0;
translateY: 60;
}
] //Fin del contenido de la escena
} //Fin de la escena
} // Fin del Stage.


Realizar aplicaciones JavaFX representa una gran ventaja ya que los Applets desarrollados con esta tecnología ofrecen un grado más de interactividad con el usuario que los Applets comunes.


Este ejemplo fue tomado del curso de Fundamentos de Programación en el cual se maneja el lenguaje C++ para enseñanza de los Alumnos en la Universidad Mesoamericana de San Agustín. Sin embargo esto demuestra que teniendo un algoritmo ya fabricado y entendiendo los diversos paradigmas de programación la adaptación de las aplicaciones puede ser "rápida".

No hay comentarios:

Publicar un comentario