Problemas con JTable
Tengo JTables en las que muestro resultados de una consulta a una base de datos. Después de realizar la consulta, los resultados se me muestran de forma correcta, pero al bajar el scroll, las filas que van apareciendo, ya no lo hacen de forma correcta y se va repitiendo la última fila de las que en principio se visualizaban bien. He probado con más y menos filas en la tabla por si era cosa de demasiada información en la tabla e incluso con valores metidos directamente sin tomarlos de la base de datos y nada.
A ver si alguien tiene alguna solución, vale?
Por cierto, me corre mucha prisa
Un saludo y gracias
A ver si alguien tiene alguna solución, vale?
Por cierto, me corre mucha prisa
Un saludo y gracias
Parece un problema de visualización del componente. ¿Has redefinido el método paint, update o repaint del componente en el que se muestra la tabla?. Si lo has hecho, en la primera lÃnea del método deberÃa aparecer una llamada al método de la superclase.
He intentado hacer:
Graphics g = jScrollPane1.getGraphics();
jScrollPane1.paintAll(g);
también con jScrollPane1.updateUI();
jScrollPane1.update(g);
jScrollPane1.paintComponents(g);
y lo máximo que he conseguido ha sido que me vuelva a mostrar el JTable en su forma original, o sea antes de desplazar el scroll.
Graphics g = jScrollPane1.getGraphics();
jScrollPane1.paintAll(g);
también con jScrollPane1.updateUI();
jScrollPane1.update(g);
jScrollPane1.paintComponents(g);
y lo máximo que he conseguido ha sido que me vuelva a mostrar el JTable en su forma original, o sea antes de desplazar el scroll.
Cuando quieras que un componente se vuelva a "dibujar", tienes que llamar a su método repaint(), que no necesita el contexto gráfico:
jScrollPane1.repaint();
La duda es en qué clase tienes el código que has puesto antes. En general, para controlar la visualización de componentes, se redefine su método paint, y cada vez que quieras actualizar el componente, se llama a su método repaint(). Sólo es necesario redefinir los métodos update() y repaint() cuando se quiere trabajar con doble buffer, que no es el caso.
jScrollPane1.repaint();
La duda es en qué clase tienes el código que has puesto antes. En general, para controlar la visualización de componentes, se redefine su método paint, y cada vez que quieras actualizar el componente, se llama a su método repaint(). Sólo es necesario redefinir los métodos update() y repaint() cuando se quiere trabajar con doble buffer, que no es el caso.
