PDA

View Full Version : [JAVA] JDialog e inserimento dati


franksisca
05-12-2009, 10:27
this is situation!!!



devo fare inserimetno dati in un jframe, che per "bloccare" ho trasformato in JDialog modale, così da restare sempre in vista.

bene, funziona tutto, solo che quando clicco su "aggiungi" mi và in errore.


Exception occurred during event dispatching:
java.lang.NullPointerException
at view.AggiungiNuovaFiliale$1.actionPerformed(AggiungiNuovaFiliale.java:55)
at javax.swing.AbstractButton.fireActionPerformed(Unknown 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.mouseReleased(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.pumpEventsForFilter(Unknown Source)
at java.awt.Dialog$1.run(Unknown Source)
at java.awt.Dialog$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Unknown Source)
at java.awt.Component.show(Unknown Source)
at java.awt.Component.setVisible(Unknown Source)
at java.awt.Window.setVisible(Unknown Source)
at java.awt.Dialog.setVisible(Unknown Source)
at view.AggiungiNuovaFiliale.init(AggiungiNuovaFiliale.java:41)
at view.AggiungiNuovaFiliale.<init>(AggiungiNuovaFiliale.java:31)
at view.GestioneFilialiPrincipale$1.actionPerformed(GestioneFilialiPrincipale.java:144)
at javax.swing.AbstractButton.fireActionPerformed(Unknown 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.mouseReleased(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)




la cosa strana è che se invece di usare il JDialog uso il Jframe non mi dà alcun tipo di errore -.-

franksisca
05-12-2009, 10:33
ok, risolto in parte, bastava non passare jdialog ot simili nel costruttore...solo che ora dopo l'inserimento sparisce tutto....bb

franksisca
05-12-2009, 10:48
allora, ho questa situazione
public class AggiungiNuovaFiliale extends JDialog


che richiamo così

AggiungiNuovaFiliale newFiliale = new AggiungiNuovaFiliale();
newFiliale.setModal(true);
newFiliale.setArchivioFiliali(archivioFiliali);



poi nella classe uso un poulsante aggiungi


String nomeFiliale = nomeText.getText();
String codFiliale = codiceText.getText();
String indirizzoFiliale = indirizzoText.getText();
Filiale newFiliale = new Filiale(nomeFiliale, indirizzoFiliale,codFiliale);
if (!(archivioFiliali.aggiungiFiliale(newFiliale))) {
JOptionPane.showMessageDialog(null,"Inserimento Fallito, modello già presente nel DataBase.","Inserimento Fallito!",JOptionPane.ERROR_MESSAGE);
} else {
JOptionPane.showMessageDialog(null,"Nuovo Modello inserito nel DataBase.","Inserimento effettuato correttamente!",JOptionPane.PLAIN_MESSAGE);
setVisible(false);
}




quando inserisco i dati mi sparisce tutto il frame, e non solo il jdialog.

perchè? come risolvo?

franksisca
05-12-2009, 10:53
ho risolto così....non credo sia elegantissimo, se avete suggerimenti ben vengano.


credo che il problema avvenga con la chiamaata al joptionpane che si vada a sovrapporre al jdialog

String nomeFiliale = nomeText.getText();
String codFiliale = codiceText.getText();
String indirizzoFiliale = indirizzoText.getText();
Filiale newFiliale = new Filiale(nomeFiliale, indirizzoFiliale,
codFiliale);
if (!(archivioFiliali.aggiungiFiliale(newFiliale))) {
setVisible(false);
JOptionPane
.showMessageDialog(
null,
"Inserimento Fallito, modello già presente nel DataBase.",
"Inserimento Fallito!",
JOptionPane.ERROR_MESSAGE);
setVisible(true);
} else {
setVisible(false);
JOptionPane.showMessageDialog(null,
"Nuovo Modello inserito nel DataBase.",
"Inserimento effettuato correttamente!",
JOptionPane.PLAIN_MESSAGE);
}

franksisca
05-12-2009, 13:50
errore...provando così praticamente mi perde la proprietà del jdialog di rimanere sempre attivo....