Autor Tema: Ejercicio CU00681B Tipos enumerados java ejemplos con JOptionPane  (Leído 4521 veces)

ZSCFCP

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 8
    • Ver Perfil
Buenos días.

Aquí les dejo mi aportación al ejercicio CU00681B para que si pueden lo revisen y me digan sus carencias y como mejorarlo. Muchas gracias por adelantado.

Les pego el código:


clase "Vehiculo":

Código: [Seleccionar]
import javax.swing.JDialog;
import javax.swing.JOptionPane;

/**
 * Clase para identificar un Vehiculo, por su marca (tipo enumerado) y su matricula (tipo String)
 * @author ZSCFCP
 * @version V.1.0
 */
public class Vehiculo
{
    enum MarcaDeVehiculo {FORD,TOYOTA,SUZUKI,RENAULT,SEAT};

    private String matricula;
    private MarcaDeVehiculo marca;

    /** Constructor para objetos de la clase Vehiculo  */
    public Vehiculo(){
        matricula = "";
        marca = MarcaDeVehiculo.SUZUKI;
    }

    // METODOS GETTERS
    public void setMatricula (String matricula) {this.matricula = matricula;}   
    public void setMarca (MarcaDeVehiculo marca) {this.marca = marca;}

    // METODOS SETTERS
    public String getMatricula() {return this.matricula;};
    public MarcaDeVehiculo getMarca() {return this.marca;};   

    // OTROS METODOS.
    public void darMarca (int seleccion) {
        switch (seleccion) {
            case 0: setMarca (MarcaDeVehiculo.FORD); break;
            case 1: setMarca (MarcaDeVehiculo.TOYOTA); break;
            case 2: setMarca (MarcaDeVehiculo.SUZUKI); break;
            case 3: setMarca (MarcaDeVehiculo.RENAULT); break;
            case 4: setMarca (MarcaDeVehiculo.SEAT); break;
            default:  break;
        } // fin del switch
    }   
}


Clase "ListaDeVehiculos":

Código: [Seleccionar]
import java.util.ArrayList;
import java.util.Iterator;

/**
 * Clase para gestionar una Lista de de objetos tipo Vehiculos dentro de una ArrayList.
 *
 * @author ZSCFCP
 * @version V.1.0.
 */
public class ListaDeVehiculos
{
    //Declaracion de atributos.
    private ArrayList<Vehiculo> listaDeVehiculos;
   
    /** Constructor de la clase ListaDeVehiculos. */
    public ListaDeVehiculos()   {listaDeVehiculos = new ArrayList<Vehiculo>();}
   
    /** Método para añadir un Vehiculo a la lista. */
    public void addVehiculo(Vehiculo miVehiculo) {listaDeVehiculos.add(miVehiculo);}
   
    /** Método para borrar un Vehiculo de la lista. */
    public Vehiculo removeVehiculo(int posicion)
    {   if (posicion>=0 && posicion<listaDeVehiculos.size())
           {return listaDeVehiculos.remove(posicion);}
        else {return null;}
    }
   
    /** Método para devolver el vehiculo de una posicion dada. */
    public Vehiculo getVehiculo(int posicion)
    {   if (posicion>=0 && posicion<listaDeVehiculos.size())
           {return listaDeVehiculos.get(posicion);}
        else {return null;}
    }
   
    /** Método para devolver el tamaño del ArrayList de Vehiculos. */
    public int tamanhoListaDeVehiculos() {return listaDeVehiculos.size();}
   
    /** Método para listar los Vehiculos de la ArrayList. */
    public void MostrarListaDeVehiculos()
    {
        Iterator <Vehiculo> itV = listaDeVehiculos.iterator();
        Vehiculo tmpV = new Vehiculo();
        int cont = 0;
        while (itV.hasNext())
        {
            tmpV = itV.next();
            System.out.println((++cont) + "\t" + tmpV.getMarca() + "\t" + tmpV.getMatricula());
        }
    }
   
}


Clase "TestListaDeVehiculos":

Código: [Seleccionar]
import javax.swing.JOptionPane;

/**
 * Clase main para que el usuario mantenga el ArrayList de objetos tipo Vehiculo.
 *
 * @author ZSCFCP
 * @version V.1.0.
 */
public class TestListaDeVehiculos
{
    public static void main (String [ ] Args)
    {

        //crear lista de vehiculos
        ListaDeVehiculos miLista = new ListaDeVehiculos();


        //mostrar menu al usuario
        boolean ejecutar = true;
        do {
                Object[] selectionValues = { "Matricular nuevo vehículo",
                                             "Visualizar vehículos matriculados",
                                             "Retirar vehiculo de la lista",
                                             "Salir del programa"};
                String initialSelection  =   "Matricular nuevo vehículo";
                int seleccion = JOptionPane.showOptionDialog(null,
                                                            "Seleccione opcion",
                                                            "MANTENIMIENTO DE VEHICULOS",
                                                            JOptionPane.DEFAULT_OPTION,
                                                            JOptionPane.QUESTION_MESSAGE,
                                                            null,    // null para icono por defecto.
                                                            selectionValues,
                                                            initialSelection);
               
                switch(seleccion) {
                    case 0:
                        Vehiculo miCoche = new Vehiculo();
                        int seleccion2 = JOptionPane.showOptionDialog(null,
                                                     "Seleccione la marca",
                                                     "MANTENIMIENTO DE VEHICULOS",
                                                     JOptionPane.DEFAULT_OPTION,
                                                     JOptionPane.QUESTION_MESSAGE,
                                                     null,
                                                     new Object[] {"FORD", "TOYOTA", "SUZUKI", "RENAULT", "SEAT"},
                                                     "FORD");
                        miCoche.darMarca(seleccion2); //metodo setter del objeto vehiculo.
                        String matricula = JOptionPane.showInputDialog("Introduzca la matrícula del vehiculo:");
                        miCoche.setMatricula(matricula); //metodo setter del objeto vehiculo.
                        miLista.addVehiculo(miCoche); //metodo para añadir del objeto ListaDeVehiculos.
                        break;
                    case 1:
                        if (miLista.tamanhoListaDeVehiculos()>0) {
                            miLista.MostrarListaDeVehiculos();
                        } else {
                            JOptionPane.showMessageDialog(null, "Ups... de momento la lista esta vacia. Deberá matricular algun vehículo antes.",
                            "¡¡¡ATENCION!!!", JOptionPane.WARNING_MESSAGE);     
                        }
                        break;
                    case 2:
                        int size = miLista.tamanhoListaDeVehiculos();
                        if (size==0) {
                            JOptionPane.showMessageDialog(null, "Ups... de momento la lista esta vacia. Deberá matricular algun vehículo antes.",
                                                          "¡¡¡ATENCION!!!", JOptionPane.WARNING_MESSAGE);     
                            break;
                        }
                        String respuesta = JOptionPane.showInputDialog("Introduzca la posicion del vehiculo a retirar de la lista");
                        if (Comunes.isNumeric(respuesta)) {
                            int delPos = Integer.parseInt(respuesta);
                            if (size >= delPos && delPos>0) {
                                miLista.removeVehiculo(delPos-1);
                            } else {
                                JOptionPane.showMessageDialog(null, "Debe introducir un numero de posición válido",
                                                              "¡¡¡ATENCION!!!", JOptionPane.WARNING_MESSAGE);
                            }                           
                        } else {
                            JOptionPane.showMessageDialog(null, "Debe introducir un numero de posición válido",
                                                          "¡¡¡ATENCION!!!", JOptionPane.WARNING_MESSAGE);

                           
                        }
                        break;
                    case 3:
                        ejecutar = false;
                    default:
                        break;
                    }
        } while (ejecutar);
    }
}


Clase "Comunes":

Código: [Seleccionar]

/**
 * Clase para utilidades comunes
 */
public class Comunes
{
    public Comunes() {}
   
    public static boolean isNumeric(String cadena)
    {
        try {
            Integer.parseInt(cadena);
            return true;
        } catch (NumberFormatException nfe){
            return false;
    }
    }
}
« Última modificación: 08 de Noviembre 2014, 16:42 por Alex Rodríguez »

toni_apr

  • Avanzado
  • ****
  • Mensajes: 497
  • Curiosidad, es uno de los pilares del Conocimiento
    • Ver Perfil
Re: Ejercicio CU00681B Tipos enumerados java
« Respuesta #1 en: 05 de Noviembre 2014, 21:59 »
Hola ZSCFCP
Ejercicio correcto. Con el uso de tipos enumerados
Y además con presentación gráfica con los métodos de la clase JOptionPane

Amigo, cada vez te salen mejor. Ahí se nota tu investigación sobre esta clase.

Espero que para el próximo sustituyas la consola de java por un panel con el mismo diseño gráfico para la presentación de los listados.

Saludos y adelante

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".