Patricio Aros

xd

miércoles, 7 de diciembre de 2011

Programacion I - Swing Lab.

Autor: Patricio Aros Erices
Competencia: Gestión del conocimiento.

Analice y desarrolle un programa que permita intercalar los dígitos de dos números enteros de dos dígitos. Por ejemplo si se tiene 12 y 37 el número resultante debería ser: 1327.

Screenshot de la UI del programa lanzando error
En este laboratorio de swing, se nos pidio el ejercicio anterior, para este debiamos hacer uso de los conocimientos que ya poseiamos para crear un programa, que intercalara numeros, este era un laboratorio de clase y no se nos pidio informe con los pasos sino que era en el momento. El problema era mayormente el de intercalar los numeros y crear una buena interfaz.
Aquí hize uso de JLabel TextField entre los principales.De manera que logré hacer una interfaz así. En el saco de la Screenshot, lanza error ya que el ejercicio decia Número de 2 dígitos ingreso uno de 3 y sale "Out of range" o fuera de rango en español para indicar que los datos ingresados estan mal

Dejo el código fuente para analizarlo, ya que esta comentado:
Cabe destacar que la interfaz y el programa fueron realizados complementamente en Bluej, un programa que usamos el primer semestre para programar java.

mport java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.event.ActionEvent.*;
public class ArosPatricio implements ActionListener
    { JFrame ventana = new JFrame ("Intercalar números"); //se define el nombre que se le da a la ventana
        JLabel etiq1 = new JLabel ("Ingrese un n° de dos dígitos");//se agrega etiqueta de texto para solicitar al usuario datos
        JTextField text1 = new JTextField (10);//se agrega un nuevo campo de texto
        JLabel etiq2 = new JLabel ("Ingrese un segundo n° de dos dígitos");//segundo texto para solicitar datos
        JTextField text2 = new JTextField (10);//segundo campo de texto
        JLabel etiq3 = new JLabel ("Númnero final intercalado");//etiqueta que indica donde saldra el numero final
        JTextField resultado = new JTextField (10);//texto donde saldra en numero final
        JButton boton = new JButton ("Intercalar");//Nuevo boton el que estará "escuchando" para realizar la operacion
        FlowLayout estilo = new FlowLayout();// estilo de orden en la ventana
        ArosPatricio ()

            { boton.addActionListener(this);// se deja escuchando al boton
                   ventana.setSize (225,220);//definiendo tamaño de ventana
                   ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//por defecto al apretar cerrar la ventana se cierra
                   resultado.setEditable(false);//el recuadro de texto donde sale el resultado no se podra editar
                   resultado.setBackground(Color.GREEN);//se coloca de color verde el  fondo del 3 cuadro de texto
                   ventana.setLayout(estilo);//estilo de ventana
                   ventana.add(etiq1);//se comienza a agregar las etiquetas y texto
                   ventana.add(text1);
                   ventana.add(etiq2);
                   ventana.add(text2);
                   ventana.add(etiq3);
                   ventana.add(resultado);
                   ventana.add(boton);
                   ventana.setVisible(true);//define que la ventana sera mostrada

                }

                public void actionPerformed(ActionEvent e)
                {int n1, n2, i, u, y, t, nf;// definiedo variables

                    String respuesta1=text1.getText();//convirtiendo texto a int
                    n1 =(int)Double.parseDouble(respuesta1);

                    String respuesta2=text2.getText();
                    n2 =(int)Double.parseDouble(respuesta2);

                    if (n1>9 && n1<100 && n2>9 && n2<100)
                    {i = n1%10;
                        u = n1/10;
                        y = n2%10;
                        t = n2/10;
                        nf = ((u*1000) + (t*100) + (i*10) + (y));

                        String output = String.valueOf(nf);

                        resultado.setText(output);

                    }
                    else {
                        String output = String.valueOf("Out of Range");
                        resultado.setText(output);}

                    }

                    public static void main (){
                        ArosPatricio gui = new ArosPatricio();

                    }
                }




Reflexión
En este laboratorio, como en algunos otros estubimos contra el tiempo, ya que se debian realizar en el periodo de laboratorio, por lo general se alcanzaba, pero en algunas ocaciones era algo ajetreado crear la interfaz, pero como ven, debido a este mismo corto tiempo, se desarrolla un poco más la habilidad de poder programar más rapido y con la menor cantidad de errores posibles, usando estas habilidades en programas a futuro, creo que fue una buena idea implementar esta metodologia(en el primer semestre).

0 comentarios:

Publicar un comentario