Java - Aplicacion registro y revision de coches JSWING

 
Vista:
sin imagen de perfil
Val: 8
Ha aumentado su posición en 4 puestos en Java (en relación al último mes)
Gráfica de Java

Aplicacion registro y revision de coches JSWING

Publicado por __Rex (4 intervenciones) el 10/07/2019 04:19:53
Buenas, resulta que el otro día, me dió por empezar a hacer una aplicacion en jswing que registrara coches con sus respectivas revisiones, todo bien guardado en jtable y en un fichero.dat y que cuando se cerrase la aplicacion al volverla a abrir estuviesen los datos cargados.

Bien hasta ahora, he conseguido que se guarden los coches, pero me ocurre un problema con las revisiones.

Y es que para las revisiones tengo la clase Revision y uno de sus atributos es descripcion de tipo String.

Bueno pues cuando añado dos revisiones a un mismo coche, imaginemos una revision en 2010, donde la descripcion es: que se le han cambiado los filtros.

Y despues añadimos otra descripcion en 2011 por ejemplo donde se le ha cambiado el aceite los neumaticos... etc

Pues al ver la primera revision que hicimos en 2010, la descripcion ha sido sustituida por la nueva, de 2011, y no soy capaz de ver donde esta mi fallo.

He de decir que lo he intentado de varias maneras.. (incluso creando la clase Descripcion), hasta tengo un boton para probar si introduciendo la matricula funcionaba, pero nada.

No hay manera.

Si alguien me quiere ayudar, se lo agradecería.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Aplicacion registro y revision de coches JSWING

Publicado por Kabuto (1381 intervenciones) el 11/07/2019 00:40:33
No podemos adivinar cómo has escrito tu código, tendrás que mostrarlo, al menos parte de él.

Ni siquiera sabemos cómo ni dónde se guardan las Revisiones.
Yo, a priori, las pondría como atributo de la clase Coche. Un objeto Vector o un ArrayList donde ir añadiendo Revisiones.

Pero bueno, hay muchas formas de hacer las cosas. Tendrás que mostrarnos lo que tú has hecho.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 8
Ha aumentado su posición en 4 puestos en Java (en relación al último mes)
Gráfica de Java

Aplicacion registro y revision de coches JSWING

Publicado por __Rex (4 intervenciones) el 11/07/2019 03:02:35
De acuerdo, como podria mostrar el codigo por aqui, lo paso en un archivo, o es que es algo extenso entonces.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 8
Ha aumentado su posición en 4 puestos en Java (en relación al último mes)
Gráfica de Java

Aplicacion registro y revision de coches JSWING

Publicado por Oscar (4 intervenciones) el 11/07/2019 03:26:59
He subido el archivo, si cuando puedas le quieres echar un vistazo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Aplicacion registro y revision de coches JSWING

Publicado por Kabuto (1381 intervenciones) el 11/07/2019 21:36:17
Voy leyendo intentando comprender el código.

No he tenido ocasión de compilar y poder modificar código para hacer pruebas y tal.
Pero creo que se lo que puede estar pasando.

En esta accion:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
private void btnMasInfoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnMasInfoActionPerformed
 
    DefaultTableModel dft = (DefaultTableModel) tablaRevisiones.getModel();
    int posicion = tablaRevisiones.getSelectedRow();
 
    if (posicion == -1) {
        JOptionPane.showMessageDialog(rootPane, "Debes seleccionar una revision para ver mas info ", "ERROR", 0);
    } else {
 
    }
    RevisionPanel rvp = new RevisionPanel(gr, gc);
    rvp.setVisible(true);
    //llenarTabla();
}

Si no se ha seleccionado UNA REVISION (posicion == -1), sale un JOptionPane de aviso, pero igualmente se abre un RevisionPanel con un constructor que muestra todas las revisiones.

Pero, si se ha seleccionado UNA REVISION (posicion != -1) , como el ELSE del IF está vacío, lo que ocurre es que se abre EL MISMO RevisionPanel que si no has seleccionado nada.

Creo que lo correcto, aunque esto ya lo comprobarás tu mejor, es que no haya ningún RevisionPanel fuera del IF.
Solo ha de haber uno, para el caso del ELSE, y usando el constructor que recibe la posicion seleccionada.
Algo así:

1
2
3
4
5
6
7
8
9
10
11
12
13
private void btnMasInfoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnMasInfoActionPerformed
 
    DefaultTableModel dft = (DefaultTableModel) tablaRevisiones.getModel();
    int posicion = tablaRevisiones.getSelectedRow();
 
    if (posicion == -1) {
        JOptionPane.showMessageDialog(rootPane, "Debes seleccionar una revision para ver mas info ", "ERROR", 0);
    } else {
        RevisionPanel rvp = new RevisionPanel(gr, gc, posicion);
        rvp.setVisible(true);
    }
    //llenarTabla();
}


Luego en el constructor, recupera una de las líneas que comentaste, porque ahora si debería funcionar (creo).
Solo que puede que ahora la clase Revision no sea lo que tengas que usar....

1
2
3
4
5
6
7
8
9
10
11
public RevisionPanel(GestionRevision gr, GestionCoches gc, int posicion) {
    initComponents();
    this.gcs = gc;
    this.grc = gr;
    this.position = posicion;
 
    lblMatricul5.setText(gcs.getCoches().get(posicion).getMatricula());
    txtDescripcion.setText(grc.getRevision().get(posicion).getDescripcion());  //Recupera esta línea
    //descrip=grc.getRevision().get(i).getDescripcion();
    //txtDescripcion.setText(descrip.getTexto()); //Comenta esta
}


Prueba con eso. Si no es la solución, dale unas vueltas igualmente a esa parte del código, porque yo creo que por ahí está el origen del problema.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Aplicacion registro y revision de coches JSWING

Publicado por Agustin (4 intervenciones) el 12/07/2019 05:48:29
Una duda, partiendo de esta definicion:

“El metodo estatico solo puede acceder a datos estaticos”

¿Entonces porque el metodo main que es estático puede acceder a datos que no lo son? Como por ejemplo, otros metodos no-estaticos y/o atributos no-estaticos?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 8
Ha aumentado su posición en 4 puestos en Java (en relación al último mes)
Gráfica de Java

Aplicacion registro y revision de coches JSWING

Publicado por __Rex (4 intervenciones) el 13/07/2019 03:08:26
Muchas gracias, dejame darle un par de vueltas y te digo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar