Oppure

Loading
03/11/12 18:02
LittleHacker
Salve a tutti,
ho bisogno di una mano, quando l'utente va a cliccare sul pulsante Esci del form(X), io gli faccio uscire un JOptionPane e gli chiedo, salvare file: si, no, annulla, sul si e sul no, tutto ok, ma quando vado a cliccare su annulla, dovrebbe ritornarmi sulla Form, invece esce! Come posso fare?

if(!SaveFile){
			int result = JOptionPane.showConfirmDialog((Component) evt.getSource(),
		            "Salvare il progetto?");
		        if (result == JOptionPane.YES_OPTION) {
		        	JFileChooser fileChooser = new JFileChooser();
					int n = fileChooser.showSaveDialog(JMain.this);
					if (n == JFileChooser.APPROVE_OPTION) {
						SavePclProject(fileChooser.getSelectedFile().toString());
						SaveObjProject(fileChooser.getSelectedFile().toString());
						SaveFile = true;
					}
		        } else if (result == JOptionPane.NO_OPTION) {
				          System.exit(0);
		        } else if(result == JOptionPane.CANCEL_OPTION){
		        	//Nothing
		        }
		}else{
			System.exit(0);
		}

Grazie :k:
Ultima modifica effettuata da LittleHacker 04/11/12 1:42
aaa
03/11/12 23:07
bububs
molto strano devo dire :om:
ho provato questo pezzo di codice:
int s = JOptionPane.showConfirmDialog(null,"Salvare il progetto?");
        if(s == JOptionPane.YES_OPTION)
            System.out.println("SI");
        else if(s == JOptionPane.NO_OPTION)
            System.out.println("NO");
        else if(s == JOptionPane.CANCEL_OPTION)
            System.out.println("ANNULLA");
        else if(s == JOptionPane.CLOSED_OPTION)
            System.out.println("CHIUDI");

e mi funziona perfettamente... percio' non saprei dirti niente se non mettere a null il primo argomento del joption :om:

P.S. comunque prova a stampare la variabile result e verificare il suo corretto valore (anche all'interno dei controlli) :k:
Ultima modifica effettuata da bububs 03/11/12 23:09
aaa
04/11/12 1:11
LittleHacker
Per prima cosa devo dirti che ho tralasciato un pezzo di codice, e cioè, uso l'evento windowClosing, e quando questo avviene, lui mi mostra il messaggio! Quando mi mostra il messaggio il form resta, ma appena clicco su Annulla il form si chiude. Ho provato come mi ha detto tu, il risultato del result è giusto, ho provato a inserire anche null al posto di frame, ma niente!
Boh!

Edit:

Sistemato!

Ho inserito questo:

this.addWindowListener(new WindowAdapter() {
				public void windowClosing(WindowEvent evt) {
					setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
					SaveOnClose();
				}
			});

nella InitGUI(), tutto qui, SaveOnClose() è la void dove ho inserito la il JOptionPane!

Grazie del tuo contributi! :k:
Ultima modifica effettuata da LittleHacker 04/11/12 1:42
aaa
04/11/12 10:31
bububs
Postato originariamente da LittleHacker:

Per prima cosa devo dirti che ho tralasciato un pezzo di codice, e cioè, uso l'evento windowClosing, e quando questo avviene, lui mi mostra il messaggio! Quando mi mostra il messaggio il form resta, ma appena clicco su Annulla il form si chiude. Ho provato come mi ha detto tu, il risultato del result è giusto, ho provato a inserire anche null al posto di frame, ma niente!
Boh!

Edit:

Sistemato!

Ho inserito questo:

this.addWindowListener(new WindowAdapter() {
				public void windowClosing(WindowEvent evt) {
					setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
					SaveOnClose();
				}
			});

nella InitGUI(), tutto qui, SaveOnClose() è la void dove ho inserito la il JOptionPane!

Grazie del tuo contributi! :k:

Ahhh ecco :) infatti non avendo messo la funzione completa non sapevo dove potesse essere l'errore anche perchè non era li :)
Comunque sia è il risultato che conta :k:
Ultima modifica effettuata da bububs 04/11/12 10:32
aaa