Problema con hilos al actualizar un JTable
Hola!!
Tengo un problema al que le llevo dando varios dĂas vueltas y no logro solucionar. Mirad, inserto en una base de datos unos contenidos y luego trato de actualizar el contenido de la JTable, todo ello dentro de un hilo.
Qué ocurre? Pues que me sale un NullPointerException... y no sé por qué. Os voy a poner los fragmentos de código y el error que resulta.
//Hilo
class Hilo extends Thread {
public Hilo() {
}
public void run() {
insertarAsunto();
try {
sleep(500);
}
catch (InterruptedException ex) {
}
//para decirle a la ventana anterior que refresque la JTable
parentBar.getRefreshButton().doClick();
}
}
.
.
.
.
hilo.start();
ERROR QUE RESULTA:
java.lang.NullPointerException
at alertaavisos.MostrarDatosFrame$NotasRenderer.getTableCellRendererComponent(MostrarDatosFrame.java:783)
at com.borland.dbswing.JdbTable.prepareRenderer(JdbTable.java:1987)
at javax.swing.plaf.basic.BasicTableUI.paintCell(BasicTableUI.java:1149)
at javax.swing.plaf.basic.BasicTableUI.paintCells(BasicTableUI.java:1051)
at javax.swing.plaf.basic.BasicTableUI.paint(BasicTableUI.java:974)
at javax.swing.plaf.ComponentUI.update(ComponentUI.java:142)
at javax.swing.JComponent.paintComponent(JComponent.java:541)Ventana activa
at javax.swing.JComponent.paint(JComponent.java:808)
at javax.swing.JComponent.paintWithOffscreenBuffer(JComponent.java:4795)
at javax.swing.JComponent.paintDoubleBuffered(JComponent.java:4748)
at javax.swing.JComponent._paintImmediately(JComponent.java:4692)
at javax.swing.JComponent.paintImmediately(JComponent.java:4495)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:410)
at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:117)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:178)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:454)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
//Espero me podáis echar una mano porque estoy desesperado ya y el programa debe hacer el refresco. Si se os ocurre otra manera...
Tengo un problema al que le llevo dando varios dĂas vueltas y no logro solucionar. Mirad, inserto en una base de datos unos contenidos y luego trato de actualizar el contenido de la JTable, todo ello dentro de un hilo.
Qué ocurre? Pues que me sale un NullPointerException... y no sé por qué. Os voy a poner los fragmentos de código y el error que resulta.
//Hilo
class Hilo extends Thread {
public Hilo() {
}
public void run() {
insertarAsunto();
try {
sleep(500);
}
catch (InterruptedException ex) {
}
//para decirle a la ventana anterior que refresque la JTable
parentBar.getRefreshButton().doClick();
}
}
.
.
.
.
hilo.start();
ERROR QUE RESULTA:
java.lang.NullPointerException
at alertaavisos.MostrarDatosFrame$NotasRenderer.getTableCellRendererComponent(MostrarDatosFrame.java:783)
at com.borland.dbswing.JdbTable.prepareRenderer(JdbTable.java:1987)
at javax.swing.plaf.basic.BasicTableUI.paintCell(BasicTableUI.java:1149)
at javax.swing.plaf.basic.BasicTableUI.paintCells(BasicTableUI.java:1051)
at javax.swing.plaf.basic.BasicTableUI.paint(BasicTableUI.java:974)
at javax.swing.plaf.ComponentUI.update(ComponentUI.java:142)
at javax.swing.JComponent.paintComponent(JComponent.java:541)Ventana activa
at javax.swing.JComponent.paint(JComponent.java:808)
at javax.swing.JComponent.paintWithOffscreenBuffer(JComponent.java:4795)
at javax.swing.JComponent.paintDoubleBuffered(JComponent.java:4748)
at javax.swing.JComponent._paintImmediately(JComponent.java:4692)
at javax.swing.JComponent.paintImmediately(JComponent.java:4495)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:410)
at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:117)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:178)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:454)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
//Espero me podáis echar una mano porque estoy desesperado ya y el programa debe hacer el refresco. Si se os ocurre otra manera...