Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    JOptionPane-confirmdialog, settare gli eventi dei pulsanti

    Come da titolo questo è il mio codice

    codice:
    int reply=JOptionPane.showConfirmDialog(null, " Vuoi davvero uscire? ", "Attenzione",                    JOptionPane.YES_NO_OPTION);
    
              if (reply == JOptionPane.YES_OPTION)             
                   System.exit(0);
              else
                    ;
    Cioè se uno spinge no, deve solo scomparire la confirmDialog, invece così che spinga sì o no mi fa uscire dal programma.
    Come risolvo?

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613

    Re: JOptionPane-confirmdialog, settare gli eventi dei pulsanti

    Originariamente inviato da Jimmy5nomana
    Come da titolo questo è il mio codice

    codice:
    int reply=JOptionPane.showConfirmDialog(null, " Vuoi davvero uscire? ", "Attenzione",                    JOptionPane.YES_NO_OPTION);
    
              if (reply == JOptionPane.YES_OPTION)             
                   System.exit(0);
              else
                    ;
    Cioè se uno spinge no, deve solo scomparire la confirmDialog, invece così che spinga sì o no mi fa uscire dal programma.
    Come risolvo?
    Cliccando "no" non esce dal programma e chiude la dialog, probabilmente il problema è fuori da quel codice.

  3. #3
    Si ma ad esempio con
    codice:
    JOptionPane.showMessageDialog(null, titolo.getText() + ": non selezionata", "Attenzione", JOptionPane.WARNING_MESSAGE);
    clicco ok e mi rimane sul frame di prima: come faccio a dirgli se clicchi no non far niente, se clicchi si esci dal programma (su JOptionPane.showConfirmDialog)?

    Cliccando "no" o "sì" esce comunque dal programma...

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    Originariamente inviato da Jimmy5nomana
    Si ma ad esempio con
    codice:
    JOptionPane.showMessageDialog(null, titolo.getText() + ": non selezionata", "Attenzione", JOptionPane.WARNING_MESSAGE);
    clicco ok e mi rimane sul frame di prima: come faccio a dirgli se clicchi no non far niente, se clicchi si esci dal programma (su JOptionPane.showConfirmDialog)?

    Cliccando "no" o "sì" esce comunque dal programma...
    codice:
    import javax.swing.JOptionPane;
    
    class Test
    {
    
      public static void main(String[] args)
      {
        int reply = JOptionPane.showConfirmDialog(
          null, "Vuoi davvero uscire?", "Uscita",
          JOptionPane.YES_NO_OPTION);
    
        if (reply == JOptionPane.YES_OPTION)
          System.exit(0);
    
        System.out.println("Il programma non e' terminato!");
      }
    
    }
    Il codice che hai postato NON esce dal programma cliccando no, non fa nulla, semplicemente prosegue col normale flusso del programma. Se poi nel resto del codice fai terminare il programma, quello non possiamo saperlo con solo quel codice.

  5. #5
    mmh allora: come faccio ad avere un frame e cliccando sul pulsante di chiusura della finestra ad avere il comportamento che ho detto? Se clicco sì esci, altrimenti fai sparire la confirmdialog. Potresti farmi un esempio?
    Perchè se io togliessi questa confirmdialog dal mio programma gli unici modi che ho per uscire sono il pulsante "chiudi" incorporato nella finestra, e il JMenuItem "esci" che però non è collegato alla ConfirmDialog in alcun modo.

  6. #6
    ah ora si spiega il tuo problema...

    per non far si che si chiuda il tuo programma devi disabilitare la chiusura automatica della finestra (oppure usare Frame di AWT) usando il metodo setDefaultCloseOperation sulla finestra ed impostando l'opzione DO_NOTHING_ON_CLOSE.
    dopo devi implementare un WindowListener e nel metodo windowClosing devi implementare il tuo messaggio di conferma.

    eccoti un esempio scritto al momento:
    codice:
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    
    /**
     * @author Naruto 92
     */
    public class Esempio extends JFrame
    {
        public Esempio(){
            setSize(300,300);
            setLocationRelativeTo(null);
            setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
            addWindowListener(new WindowAdapter(){
                public void windowClosing(WindowEvent evt){
                    if(JOptionPane.showConfirmDialog(null, "Vuoi uscire?", "Uscita", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION){
                        System.exit(0);
                    }
                }
            });
        }
        public static void main(String args[]){
            new Esempio().setVisible(true);
        }
    }
    I miei esempi in Java qui: http://cdpjavaexamples.altervista.org/index.html

  7. #7
    Esattamente, grazie mille

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.