Klaudioz Usuario Novato

Mensajes: 1 Desde: 02/Jun/2004 | Extraño error al ejecutar programa en java
hola, tengo un problema con este codigo
http://usuarios.lycos.es/klaudioz/TablaSwing.java
al compilarlo todo perfecto, al ejecutarlo tb, pero a la hora de abrir el archivo que el programa analizara se cae,y esto tira por consola:
java.lang.NullPointerException
at TablaSwing.abrir(TablaSwing.java:57)
at GestorMenus.actionPerformed(GestorMenus.java:18)
la linea 57 es: scrollTabla.setPreferredSize(new Dimension(450, 400));
creo que es cuando quiere dibujar la tabla con los datos ya importados
he intentado de todos moder entender porque se cae, incluso instale el netbeans para debuggearlo, pero no hay caso, se ve todo bien, los datos capturados del archivo estan bien analizados segun el debugger.
el programa abre un archivo tipo datos.dat
nombre valor ctad
lapiz 100 50
papel 10 5
y se supone que debe ponerlo en una jtable para analizarlo o editarlo y luego guardarlo, pero en la parte que tiene que mostrar los resultados se cae
cualquier sugerencia me ayudaria mucho.
gracias
|
02/Jun/2004 19:39 GMT+1 | Perfil · Privado · Desconectado |
Jose_Java Usuario habitual

Mensajes: 71 Desde: 30/May/2004 | RE: Extraño error al ejecutar programa en java
Ese error que te da de 'NullPointerException' (excepcion de puntero nulo) es muy tipico de lenguajes como Java o C++, que son orientados a objetos. Quiere decir que una variable/puntero que has definido no apunta en memoria hacia ningún objeto de ese tipo.
Yo me quedaria con una parte de tu codigo:
if(scrollTabla !=null)
panelTabla.remove(scrollTabla);
tabla = new JTable(datosFichero);
scrollTabla.setPreferredSize(new Dimension(350,100));
panelTabla.add(scrollTabla);
panelTabla.revalidate();
scrollTabla es de tipo JScrollPane. No veo que construyas un nuevo objeto de este tipo en ningun lugar. Antes de poder usar el metodo setPreferredSize tendrías que hacer algo así:
scrollTabla = new JScrollPane(parametros...);
asi scrollTabla ya tendría su lugar en memoria reservado con un objeto de tipo JScrollPane(), y ya podrías usar sus metodos.
Construyelo justo antes de la llamada a setPreferredSize(..), ya que antes estás comprobando si ya hay un objeto creado, y si existe lo borras.
|
02/Jun/2004 22:45 GMT+1 | Perfil · Privado · Desconectado |