Hola a todos mirad tengo un problemilla con un jTablemodel resulta que contiene 5 columnas nombradas: matricula, marca, modelo, Tipo motor, clase.
En cada una cuando agrego un nuevo coche sale su correspodiente atributo, el problema es que cuando modifico por cualquier cosa ese coche los atributos se cambian en marca se pone modelo y en el tipo de motor me aparece la case (berlina, familiar, cabrio,Todoterreo) y mira que he estado mirando el codigo en la clase modificar coche pero no veo donde coj... tengo cambiado eso, asi que antes de volverme loco os pido ayuda, aqui os pongo el codigo de modificar coche:
Código HTML:
public class ModificarCoche implements ActionListener {
public static final long serialVersionUID = 1L;
//Objeto Vehiculo
Coche coche;
ArrayList<Integer> listaEspecificaciones = new ArrayList<Integer>();
GestionarCoche gC = new GestionarCoche();
PanelEspecificaciones panelEspecificaciones;
String clase = "Berlina";
String matricula;
String marca;
String modelo;
String tipoMotor;
String concesionario;
JPanel panelPrincipal = new JPanel();
//Definimos los campos
public JComboBox concesionarioCoche = new JComboBox();
public JTextField marcaCoche = new JTextField(10);
public JComboBox claseCoche = new JComboBox();
public JTextField modeloCoche = new JTextField(10);
public JComboBox tipoMotorCoche = new JComboBox();
public JComboBox campoMatriculaCoche = new JComboBox();
private JPanel panelAddVehiculoBoton;
//Metodo constructor que nos inicializa la ventana secundaria.
public ModificarCoche() {
JDialog ventanaModVehiculo = new JDialog();
System.out.println("Marca: "+marca+"Modelo :"+modelo+"Especificaciones: "+listaEspecificaciones);
ventanaModVehiculo.setTitle("Modificar Coche");
ventanaModVehiculo.setContentPane(getPanelPrincipal());
ventanaModVehiculo.setModal(true);
ventanaModVehiculo.pack();
ventanaModVehiculo.setLocationRelativeTo(null);
ventanaModVehiculo.setVisible(true);
}
public Coche definirVehiculo(String matricula){
coche = gC.sacarDeFichero(matricula);
concesionario = coche.getConcesionario();
marca = coche.getMarca();
modelo = coche.getModelo();
clase = coche.getClase();
tipoMotor = coche.getTipoMotor();
listaEspecificaciones = coche.sacarAtributos();
return coche;
}
//Panel principal que contendra el panel de campos y el panel del boton agregar
public JPanel getPanelPrincipal(){
panelPrincipal.setLayout(new BoxLayout(panelPrincipal,BoxLayout.PAGE_AXIS));
panelPrincipal.add(getPanelLabel());
panelPrincipal.add(getPanelAddCoche());
panelPrincipal.add(getJpanelEspecificaciones());
panelPrincipal.add(getPanelAddCocheBoton());
panelPrincipal.setBorder(BorderFactory.createEmptyBorder(15,15,15,15));
return panelPrincipal;
}
//Panel de Campos (NORTE)
public JPanel getPanelAddCoche(){
JPanel panelAddVehiculo = new JPanel();
panelAddVehiculo.setLayout(new GridLayout(0,2));
panelAddVehiculo.add(new JLabel("Matricula"));
panelAddVehiculo.add(getCampoMatriculaCoche());
panelAddVehiculo.add(new JLabel("Concesionario"));
panelAddVehiculo.add(getConcesionarioCoche());
panelAddVehiculo.add(new JLabel("Marca"));
panelAddVehiculo.add(marcaCoche);
panelAddVehiculo.add(new JLabel("Modelo"));
panelAddVehiculo.add(modeloCoche);
panelAddVehiculo.add(new JLabel("Tipo Motor"));
panelAddVehiculo.add(getTipoMotorCoche());
panelAddVehiculo.add(new JLabel("Clase"));
panelAddVehiculo.add(getClaseCoche());
panelAddVehiculo.setBorder(BorderFactory.createEmptyBorder(15,15,0,15));
return panelAddVehiculo;
}
//Instanciamos el panel de especificaciones
public JPanel getJpanelEspecificaciones(){
JPanel jpanelEspecificaciones = new JPanel();
jpanelEspecificaciones.setLayout(new GridBagLayout());
try {
panelEspecificaciones = (PanelEspecificaciones) Class.forName("ucam.aplicacion.Coches.PanelEspecificaciones"+clase).newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
jpanelEspecificaciones.add(panelEspecificaciones.getPanelEspecificaciones());
return jpanelEspecificaciones;
}
//Panel con texto/encabezado
private JPanel getPanelLabel(){
JPanel panelLabel = new JPanel();
JLabel label = new JLabel("Modificar Coche");
panelLabel.setLayout(new BorderLayout());
panelLabel.add(label);
return panelLabel;
}
//Generamos los dos JCombo Box
public JComboBox getClaseCoche() {
//Puesto que el objeto claseCoche lo defino fuera del metodo, con este condicional
//hago que no puedan agrearse mas lineas al JComboBox que ya esta instanciado
if (claseCoche.getItemCount() == 0){
//Los atributos que se cargaran en el JComboBox los extraemos del fichero propiedades
GestionarPropiedades gP = new GestionarPropiedades();
String clase = gP.sacarClases();
String[] arraymodelo = clase.split(" "); //Las comillas nos listan todo
for(int i = 0 ;i<arraymodelo.length ; i++){
claseCoche.addItem(arraymodelo[i]);
}
}
claseCoche.addActionListener(this);
return claseCoche;
}
public JComboBox getConcesionarioCoche() {
if (concesionarioCoche.getItemCount() == 0){
GestionarConcesionario gC = new GestionarConcesionario();
Hashtable hashConcesionarios = gC.reCargar();
concesionarioCoche.addItem("Seleccione un concesionario.. ");
for(Enumeration e = hashConcesionarios.keys(); e.hasMoreElements();){
Object obj = e.nextElement();
concesionarioCoche.addItem(obj);
}
concesionarioCoche.addActionListener(listenerConcesionario);
}
return concesionarioCoche;
}