Clase para interactuar con el usuario mediante interfaz gráfica simple

Iniciado por JmpNull, 17 Agosto 2009, 22:38 PM

0 Miembros y 1 Visitante están viendo este tema.

JmpNull

Buenas!

Como últimamente me aburro bastante (hasta empezar otra vez la uni en 2o curso de Ingeniería Informática ;D), hoy he programado una clase estática que sirve para mostrar y recibir datos mediante simples mensajes por pantalla. Es muy simple, pero bastante útil a la hora de hacer programas simples o pedir datos en un cierto momento. Respetando el modelo MVC, es estática simplemente porque la interfaz de interacción con el usuario (en la mayoría de casos) tiene que ser independiente del programa para poder implementar el software en consola, web, etc. Espero que sirva de ayuda y os sea de interés!

Próximamente subiré algunos programas que he hecho durante estos casi 3 meses de vacaciones (lo que hace el aburrimiento  :xD).

Saludos a todos! :)

Nombre de la clase: SimpleGui.java

Código (java) [Seleccionar]

/*
* Copyright 2009 Juan Carlos <juancarloslinux@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*/

import javax.swing.JOptionPane;
import javax.swing.JTextArea;

/**
* Clase estatica para pedir datos mediante interfaz grafica simple.
*
* @author JmpNull
*/
public class SimpleGui {

   /**
    * Este metodo se encarga de leer un objeto Integer.
    *
    * @param mensaje El mensaje que va a mostrar
    * @return El valor de retorno
    */
   public static Integer getInteger(String mensaje) {
       Integer i = null;
       boolean valido = false;
       while (!valido) {
           try {
               i = Integer.parseInt(JOptionPane.showInputDialog(mensaje));
               valido = true;
           } catch (NumberFormatException e) {
               printError("La entrada no es valida");
               i = null;
           }
       }
       return i;
   }

   /**
    * Este metodo se encarga de leer un objeto Double.
    *
    * @param mensaje El mensaje que va a mostrar
    * @return El valor de retorno
    */
   public static Double getDouble(String mensaje) {
       Double i = null;
       boolean valido = false;
       while (!valido) {
           try {
               i = Double.parseDouble(JOptionPane.showInputDialog(mensaje));
               valido = true;
           } catch (NumberFormatException e) {
               printError("La entrada no es valida");
               i = null;
           }
       }
       return i;
   }

   /**
    * Este metodo se encarga de leer un objeto Float.
    *
    * @param mensaje El mensaje que va a mostrar
    * @return El valor de retorno
    */
   public static Float getFloat(String mensaje) {
       Float i = null;
       boolean valido = false;
       while (!valido) {
           try {
               i = Float.parseFloat(JOptionPane.showInputDialog(mensaje));
               valido = true;
           } catch (NumberFormatException e) {
               printError("La entrada no es valida");
               i = null;
           }
       }
       return i;
   }

   /**
    * Este metodo se encarga de leer un objeto Character.
    *
    * @param mensaje El mensaje que va a mostrar
    * @return El valor de retorno
    */
   public static Character getCharacter(String mensaje) {
       Character salida = null;
       boolean valido = false;
       while (!valido) {
           String valor = JOptionPane.showInputDialog(mensaje);

           if (valor.length() == 0) {
               salida = ' ';
               valido = true;
           } else if (valor.length() == 1) {
               salida = valor.charAt(0);
               valido = true;
           } else {
               printError("La entrada no es valida");
           }
       }
       return salida;
   }

   /**
    * Este metodo se encarga de mostrar al usuario un mensaje de pregunta.
    *
    * @param entrada El mensaje de pregunta
    * @return El resultado
    */
   public static Integer getQuestion(String entrada) {
       return JOptionPane.showConfirmDialog(null, entrada);
       // 0 para yes
       // 1 para no
       // ? para cancel o x
   }

   /**
    * Este metodo se encarga de leer un objeto String.
    *
    * @param mensaje El mensaje que va a mostrar
    * @return El valor de retorno
    */
   public static String getString(String mensaje) {
       return JOptionPane.showInputDialog(mensaje);
   }

   /**
    * Este metodo muestra por pantalla un mensaje de tipo texto plano.
    *
    * @param entrada El mensaje a mostrar
    */
   public static void printPlain(String entrada) {
       JOptionPane.showMessageDialog(null, entrada, "Salida",
               JOptionPane.PLAIN_MESSAGE);
   }

   /**
    * Este metodo muestra por pantalla un mensaje de tipo error.
    *
    * @param entrada El mensaje a mostrar
    */
   public static void printError(String entrada) {
       JOptionPane.showMessageDialog(null, entrada, "Error",
               JOptionPane.ERROR_MESSAGE);
   }

   /**
    * Este metodo muestra por pantalla un mensaje de tipo pregunta.
    *
    * @param entrada El mensaje a mostrar
    */
   public static void printQuestion(String entrada) {
       JOptionPane.showMessageDialog(null, entrada, "Salida",
               JOptionPane.QUESTION_MESSAGE);
   }

   /**
    * Este metodo muestra por pantalla un mensaje de tipo informativo.
    *
    * @param entrada El mensaje a mostrar
    */
   public static void printInformation(String entrada) {
       JOptionPane.showMessageDialog(null, entrada, "Salida",
               JOptionPane.INFORMATION_MESSAGE);
   }

   /**
    * Este metodo muestra por pantalla un mensaje de tipo aviso.
    *
    * @param entrada El mensaje a mostrar
    */
   public static void printWarning(String entrada) {
       JOptionPane.showMessageDialog(null, entrada, "Salida",
               JOptionPane.WARNING_MESSAGE);
   }

   /**
    * Este metodo muestra por pantalla un mensaje dentro de un objeto
    * JTextArea.
    *
    * @param entrada El objeto JTextArea
    */
   public static void println(JTextArea entrada) {
       JOptionPane.showMessageDialog(null, entrada);
   }    
   
   /**
    * Este metodo muestra por pantalla un mensaje de tipo estandar.
    *
    * @param entrada El mensaje a mostrar
    */
   public static void println(String entrada) {
       JOptionPane.showMessageDialog(null, entrada);
   }    

   // IDEM
   public static void println(Integer entrada) {
       JOptionPane.showMessageDialog(null, String.valueOf(entrada));
   }

   public static void println(Double entrada) {
       JOptionPane.showMessageDialog(null, String.valueOf(entrada));
   }

   public static void println(Float entrada) {
       JOptionPane.showMessageDialog(null, String.valueOf(entrada));
   }

   public static void println(Character entrada) {
       JOptionPane.showMessageDialog(null, String.valueOf(entrada));
   }
}



En el mundo hay 10 tipos de personas...Los que leen binario y los que no.