13/09/10 16:00
Goldeneye
Ciao a tutti mi sono appena iscritto al forum perchè ho decisamente un problema che non riesco a risolvere e spero che voi possiate aiutarmi
Il problema è il seguente:
Ho creato un programma in Java con l'utilizzo di Netbeans, il programma è completato e attraverso Netbeans funziona perfettamente, però, dopo averlo compilato e eseguito da Prompt di MSDOS mi da il seguente errore:
Il pezzo di sorgente del programma "sotto accusa" è il seguente
Parlando col mio prof dell'università mi ha detto che probabilmente l'errore è derivante da File fl[] = di.listFiles(); il quale potrebbe risultare Null
Mi ha suggerito di inizializzarlo nel costruttore e non nella dichiarazione ma non sono riuscito, qualcuno può aiutarmi?
Grazie
Il problema è il seguente:
Ho creato un programma in Java con l'utilizzo di Netbeans, il programma è completato e attraverso Netbeans funziona perfettamente, però, dopo averlo compilato e eseguito da Prompt di MSDOS mi da il seguente errore:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at Grafica.SimpleTableDemo.<init>(SimpleTableDemo.java:42) at Grafica.Finestra3.PadMouseClicked(Finestra3.java:192) at Grafica.Finestra3.access0(Finestra3.java:34) at Grafica.Finestra3.mouseClicked(Finestra3.java:93) at java.awt.AWTEventMulticaster.mouseClicked(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)
Il pezzo di sorgente del programma "sotto accusa" è il seguente
> package Grafica; > import java.io.*; > import java.util.logging.Level; > import java.util.logging.Logger; > > > import javax.swing.JFrame; > import javax.swing.JPanel; > import javax.swing.JScrollPane; > import javax.swing.JTable; > import java.awt.Dimension; > import java.awt.GridLayout; > import java.awt.event.MouseAdapter; > import java.awt.event.MouseEvent; > import java.text.DateFormat; > import java.text.SimpleDateFormat; > import java.util.Date; > /** > * > * Finestra con Tabella elenco file e descrizione > */ > > public class SimpleTableDemo extends JPanel { > private boolean DEBUG = false; > File di = new File("../Calcolatore2/"); > File fl[] = di.listFiles(); > FileInputStream fis; > FileOutputStream file; > String[] nomeFile; > String[] nomeEste; > int i, j; > int sottrai=0; > int con=0; > int count=0; > int[] dimen; > String str=""; > String list=""; > String[] dataModif; > > public SimpleTableDemo() { > super(new GridLayout(1,0)); > nomeFile=new String[fl.length]; <--- Questa è la riga 42 > nomeEste=new String[fl.length]; > dimen= new int[fl.length]; > dataModif= new String[fl.length]; > DateFormat sdf = DateFormat.getDateInstance(DateFormat.SHORT); > > for (i=0; i < fl.length; i++){ > nomeFile[con]=""; > String nome=""; > Boolean conto=false; > if (fl[i].length()!=0) { > for (j=16; j < fl[i].toString().length(); j++){ > String car=""; > car=car+fl[i].toString().charAt(j); > if(car.equals(".") && j!=16 ){ > nome=""; > conto=true; > } > nome=nome+car; > if (conto) nomeEste[con] = nome; > else nomeFile[con]=nome; > } > Date d = new Date(fl[i].lastModified()); > dataModif[con]=sdf.format(d).toString(); > dimen[con]=(int) fl[i].length(); > con=con+1; > } > > } > ...
Parlando col mio prof dell'università mi ha detto che probabilmente l'errore è derivante da File fl[] = di.listFiles(); il quale potrebbe risultare Null
Mi ha suggerito di inizializzarlo nel costruttore e non nella dichiarazione ma non sono riuscito, qualcuno può aiutarmi?
Grazie
aaa