Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/08/2012, 08:42
mkeydiluffy
 
Fecha de Ingreso: noviembre-2010
Mensajes: 16
Antigüedad: 14 años, 2 meses
Puntos: 0
Probblema con JTableModel

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;
		
	}