Allora ragazzi vi spiego il mio problema :
-Ho una classe che rappresenta il menu principale di un'applicazione e che chiamerò con A
-Ho una seconda classe che rappresenta un pannello con vari componenti al suo interno, questo panello lo andrò ad inserire nella classe successiva.diciamo che questa classe la chiamo B.
-Ho una terza classe formata da una jTabbed e ogni jTabbed contiene il pannello precedente.Questa classe la chiamo con C. Quindi in pratica ogni jtabbed di C contiene la classe B.
Fatta una panoramica delle mie classi ora vi espongo il mio problema.Praticamente tramite A (attraverso uno specifico bottone) faccio aprire C. C contiene un bottone "Torna al menu principale" (questo bottone naturalmente fa parte del pannello B, il quale come detto è inserito in C), tramite questo bottone quindi io dovrei tornare ad A e far chiudere C. Ho implementato il listener, però riesco solo a far aprire A, nel momento in cui il listener chiama la dispose() su C mi genera un'eccezzione e C nn si chiude.Come mai??
vi posto il codice dell'eccezzione e il listener.
Codice exception
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at
interfaccia.Pannello_inserimento_modifica$1.action Performed(Pannello_inserimento_modifica.java:418)
at javax.swing.AbstractButton.fireActionPerformed(Unk nown Source)
at javax.swing.AbstractButton$Handler.actionPerformed (Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed (Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseRe leased(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(U nknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unkno wn 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.pumpOneEventForFilter s(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(U nknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarch y(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Codice listener
torna.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
try
{
insdati.dispose();
}
catch (NullPointerException ex) {}
finally
{
Maschera_Iniziale mas = new Maschera_Iniziale();
JFrame f = mas.getJFrame();
f.show();
insdati.dispose();
}
}
});
-torna è il bottone per tornare al menu principale
-insdati è un oggetto di tipo C
-Maschera_Iniziale sarebbe la classe che ho chiamato A qui
questo listener è richiamato naturalmente all'interno del pannello che qui ho denominato B, perchè il bottone appartiene al pannello.
grazie come sempre per il vostro aiuto..