Newsgroup: it.comp.java
Titolo: java.lang.NullPointerException

In esuzione mi da questo errore, probabilmente causato dalla mia ignoranza.
Dunque, io ho una classe che estende JFrame (Main)e un'altra che estende
JDialog (Find).
Alla pressione di un pulsante sulla prima (JFrame) viene chiamata JDialog
con la seguenti istruzione:
find = new Find(this);
naturalmente find e' stato dichiarato nel corpo della classe (all'inizio).
Fin qui' va tutto bene (verrei vedere...), infatti la finestra si apre
normalmente. In Find dichiaro cioe' classe ascoltatrice di eventi Main
(anche qui' totto ok), Main infatti cattura, come previsto, l'evento
generato dalla pressione dei tasti sulla finestra di dialogo. A questo
punto, voi, vi chiederete: dov'e' il problema? E' qua':
Catturato l'evento, Main, deve prendere da Find, alcuni parametri, inseriti
dall'utente, contenuti in un JTextField, ma sull'istruzione:
find.keyField.getText();
appare, in output, la caratteristica sfilza di errori che hanno come
*titolo* java.lang.NullPointerException. Perche'?
Find l'ho instanziato!
keyField e' pubblico (e, anche se non lo fosse, le classi sono nel solito
package...)
indi, iluminatemi, per favore...
Nihil
---
nihil est quod ratio facere non posse

 indi, iluminatemi, per favore...
Eeeeeeeeeeh??? E' meglio se posti il codice.
Marco.


ovviamente nel codice di "find" c'e` una riga del tipo "keyField = ..." 
vero?
inoltre anche getText() puo` ritornare null, quindi prima di utilizzare
il valore di restituito dalla funzione dovresti mettere un controllo.
-- 
Ciao,     |   And the devil in black dress watches over
 Matteo   |   My guardian angel walks away
          |   Life is short and love is always over in the morning
          |   Black wind come carry me far away


keyField e' istanziato! infatti nella finestra di dialogo appare!
certo che ho fatto il controllo, ma non e' questo il problema...
Sigh,
Aiuto!

 indi, iluminatemi, per favore...
Consiglio stupido, prova a farlo girare in un debugger ti chiarisce
molto le idee.

 ha scritto nel messaggio
news:3A587292...@tin.it...

Non ce l'ho, dove ne trovo uno buono?
Nihil

 ha scritto nel messaggio
news:t5ebh4h...@corp.supernews.com...

Scusa per il ritardo della risposta ma (lo dico vergognandomi) mi ero
dimenticato di te...
Intendi tutti i codici, completi, in modo da poter eseguire l'applicazione?
Io posso anche postarli ma dovrei fare un ingente quantita' di modifiche,
dato che il programma in questione si connette ad un database che non posso
postare (motivi personali).
Inoltre credo che il problem non vada al di fuori dei particolari che vi ho
gia' detto...
Nihil


Sicuramente hai jdb, quello di serie con il jdk che funziona da linea di
comando ma è abbastanza macchinoso. Personalmente uso l'iterfaccia di
forte4j verso jpda l'architettura di debugging implementata in Java 2 da
Sun è molto comodo.
Ciao, Lorenzo
P.S. Forte for java lo trovi naturalmente sul sito di sun.

 In esecuzione mi da questo errore, probabilmente causato dalla mia
ignoranza.
Per maggior chiarezza allego completamente i messaggi di errore:
Exception occurred during event dispatching:
java.lang.NullPointerException
 at Biblioteca.newTable(Biblioteca.java:121)
// e' la riga dalla quale verrebbe preso il testo dal JTextField della
finestra di dialogo
 at Biblioteca.actionPerformed(Biblioteca.java:159)
// e' la riga che chiama il metodo contenente l'istruzione di cui sopra
 at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1450)
 at
javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButto
n.java:1504)
 at
javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:3
78)
 at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:250)
 at
javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener
.java:216)
 at java.awt.Component.processMouseEvent(Component.java:3717)
 at java.awt.Component.processEvent(Component.java:3546)
 at java.awt.Container.processEvent(Container.java:1164)
 at java.awt.Component.dispatchEventImpl(Component.java:2595)
 at java.awt.Container.dispatchEventImpl(Container.java:1213)
 at java.awt.Component.dispatchEvent(Component.java:2499)
 at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:2451)
 at java.awt.LightweightDispatcher.processMouseEvent(Container.java:2216)
 at java.awt.LightweightDispatcher.dispatchEvent(Container.java:2125)
 at java.awt.Container.dispatchEventImpl(Container.java:1200)
 at java.awt.Window.dispatchEventImpl(Window.java:912)
 at java.awt.Component.dispatchEvent(Component.java:2499)
 at java.awt.EventQueue.dispatchEvent(EventQueue.java:319)
 at java.awt.EventDispatchThread.pumpOneEvent(EventDispatchThread.java:103)
 at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
 at java.awt.Dialog.show(Dialog.java:370)
 at Find.<init>(Find.java:25)
// e' la riga della finestra di dialogo con l'istruzione show();
 at Biblioteca.actionPerformed(Biblioteca.java:154)
// e' la riga che instanzia Find: find = new Find(this);
 at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1450)
 at
javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButto
n.java:1504)
 at
javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:3
78)
 at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:250)
 at javax.swing.AbstractButton.doClick(AbstractButton.java:279)
 at
javax.swing.plaf.basic.BasicMenuItemUI$MouseInputHandler.mouseReleased(Basic
MenuItemUI.java:886)
 at java.awt.Component.processMouseEvent(Component.java:3717)
 at java.awt.Component.processEvent(Component.java:3546)
 at java.awt.Container.processEvent(Container.java:1164)
 at java.awt.Component.dispatchEventImpl(Component.java:2595)
 at java.awt.Container.dispatchEventImpl(Container.java:1213)
 at java.awt.Component.dispatchEvent(Component.java:2499)
 at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:2451)
 at java.awt.LightweightDispatcher.processMouseEvent(Container.java:2216)
 at java.awt.LightweightDispatcher.dispatchEvent(Container.java:2125)
 at java.awt.Container.dispatchEventImpl(Container.java:1200)
 at java.awt.Window.dispatchEventImpl(Window.java:912)
 at java.awt.Component.dispatchEvent(Component.java:2499)
 at java.awt.EventQueue.dispatchEvent(EventQueue.java:319)
 at java.awt.EventDispatchThread.pumpOneEvent(EventDispatchThread.java:103)
 at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
 at java.awt.EventDispatchThread.run(EventDispatchThread.java:84)
Aiuto! Non so che fare
