Test Foro de elhacker.net SMF 2.1

Programación => Programación General => Java => Mensaje iniciado por: Winterz en 28 Mayo 2014, 17:36 PM

Título: ArrayList varios tipos de Objetos
Publicado por: Winterz en 28 Mayo 2014, 17:36 PM
Hola de nuevo,

Tengo un problema con el siguiente trozo de código.
Tengo una ventana para consultar los vehiculos almacenados en mi aplicacion. Estos vehiculos estan almacenados en un ArrayList<Vehiculo>, la clase Vehiculo es una superclase que a su vez se distingue en Automoviles(Turismo y Todoterreno) y Motocicletas.

Tengo que hacer para mostrar los vehiculos almacenados segun el tipo osease Turismo Todoterreno Motocicleta o mostrarlos a todos sin importar que tipo sea. Tengo el siguiente código:

tipo = (String) ComboChoice.getSelectedItem();

        if(tipo.equals("Todos")){
            ConsultFrame.jLabel3.setVisible(false); 
        }       
               
        if (tipo.equals("Motocicletas")) {
               ConsultFrame.jLabel13.setVisible(false);
               ConsultFrame.jLabel15.setVisible(false);
               ConsultFrame.jLabel16.setVisible(false);
               ConsultFrame.LabelPuertas.setVisible(false);
               ConsultFrame.jComboBox2.setVisible(false);
               ConsultFrame.jComboBox1.setVisible(false);
               ConsultFrame.txtNumPsajeros.setVisible(false);
               ConsultFrame.txtNumPuertas.setVisible(false);
               ConsultFrame.jLabel3.setVisible(true);
               ConsultFrame.jLabel11.setVisible(true);
               ConsultFrame.ComboTipo.setVisible(true);
               ConsultFrame.txtCilindrada.setVisible(true);
        }
        if (tipo.equals("Turismo")) {
               ConsultFrame.jLabel13.setVisible(true);
               ConsultFrame.jLabel15.setVisible(true);
               ConsultFrame.jLabel16.setVisible(true);
               ConsultFrame.LabelPuertas.setVisible(true);
               ConsultFrame.jComboBox2.setVisible(true);
               ConsultFrame.jComboBox1.setVisible(true);
               ConsultFrame.txtNumPsajeros.setVisible(true);
               ConsultFrame.txtNumPuertas.setVisible(true);
               ConsultFrame.jLabel3.setVisible(false);
               ConsultFrame.jLabel11.setVisible(false);
               ConsultFrame.ComboTipo.setVisible(false);
               ConsultFrame.txtCilindrada.setVisible(false);
               ConsultFrame.LabelPuertas.setText("NUM. PUERTAS");
        }
        if (tipo.equals("Todoterreno")) {
               ConsultFrame.jLabel13.setVisible(true);
               ConsultFrame.jLabel15.setVisible(true);
               ConsultFrame.jLabel16.setVisible(true);
               ConsultFrame.LabelPuertas.setVisible(true);
               ConsultFrame.jComboBox2.setVisible(true);
               ConsultFrame.jComboBox1.setVisible(true);
               ConsultFrame.txtNumPsajeros.setVisible(true);
               ConsultFrame.txtNumPuertas.setVisible(true);
               ConsultFrame.jLabel3.setVisible(false);
               ConsultFrame.jLabel11.setVisible(false);
               ConsultFrame.ComboTipo.setVisible(false);
               ConsultFrame.txtCilindrada.setVisible(false);
               ConsultFrame.LabelPuertas.setText("TRACCION");       
        }

Como cada vehiculo tiene unos atributos distintos, nose como hacer que al iniciar la ventana me salga el primer Vehiculo ( turismo por ejemplo) salgan los textField con todos sus atributos correspondientes y si al darle a siguiente se da el caso de que sea un CicloMotor por ejemplo, se oculten las casillas que no necesito y aparezcan las propias del ciclomotor.

Algun rayo de luz a este asunto?