Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Finestra di dialogo

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da signfra Visualizza il messaggio
    codice:
                JFrame frame=new JFrame();
                
        JOptionPane option = new JOptionPane ("Hai capito?", JOptionPane.QUESTION_MESSAGE, JOptionPane.YES_NO_OPTION);
        JDialog dialog = option.createDialog(frame,"Una domanda...");
        dialog.pack();
        dialog.setVisible(true);
    L'uso "diretto" di JOptionPane, cioè istanziarlo, configurarlo, invocare createDialog, ecc.... è certo possibile ma si fa in casi e scenari ben particolari.
    Nel tuo caso, per un semplice sì/no, non ha molto senso. Usa una delle varianti del metodo statico showConfirmDialog. Se passi come optionType la costante JOptionPane.YES_NO_OPTION, allora showConfirmDialog ti può restituire 2 valori: YES_OPTION o NO_OPTION.
    Stop, tutto qui.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  2. #2
    Quote Originariamente inviata da andbin Visualizza il messaggio
    L'uso "diretto" di JOptionPane, cioè istanziarlo, configurarlo, invocare createDialog, ecc.... è certo possibile ma si fa in casi e scenari ben particolari.
    Nel tuo caso, per un semplice sì/no, non ha molto senso. Usa una delle varianti del metodo statico showConfirmDialog. Se passi come optionType la costante JOptionPane.YES_NO_OPTION, allora showConfirmDialog ti può restituire 2 valori: YES_OPTION o NO_OPTION.
    Stop, tutto qui.

    E una cosa che devo fare per forza. Lo so che non ha senso ma devo farlo.

    Allora come posso invocare una funzione che quando clicco si mi esegua la mia istruzione?

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da signfra Visualizza il messaggio
    E una cosa che devo fare per forza. Lo so che non ha senso ma devo farlo.
    Scusa (curiosità mia): motivo esatto di tale cosa "per forza"?

    Quote Originariamente inviata da signfra Visualizza il messaggio
    Allora come posso invocare una funzione che quando clicco si mi esegua la mia istruzione?
    Con l'uso "diretto" di JOptionPane devi usare getValue() di JOptionPane per sapere quale opzione ha scelto l'utente.
    getValue() può restituire:
    - null se l'utente ha chiuso la dialog (con il pulsantino "X")
    - un Integer con il valore della opzione scelta (es. JOptionPane.YES_OPTION o JOptionPane.NO_OPTION)


    P.S. dopo setVisible(true) è bene fare un dispose()
    P.S.2: dai anche una "sbirciata" al sorgente di JOptionPane, in particolare al metodo showOptionDialog .... ti illuminerà.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Scusa (curiosità mia): motivo esatto di tale cosa "per forza"?


    Con l'uso "diretto" di JOptionPane devi usare getValue() di JOptionPane per sapere quale opzione ha scelto l'utente.
    getValue() può restituire:
    - null se l'utente ha chiuso la dialog (con il pulsantino "X")
    - un Integer con il valore della opzione scelta (es. JOptionPane.YES_OPTION o JOptionPane.NO_OPTION)


    P.S. dopo setVisible(true) è bene fare un dispose()
    P.S.2: dai anche una "sbirciata" al sorgente di JOptionPane, in particolare al metodo showOptionDialog .... ti illuminerà.
    Allora il problema e che con questo metodo non so come effettuare una istruzioe quando ho premuto si ,no,o no eggs. E poi Come si può personalizzare l'icona?

    codice:
    //Custom button text
    Object[] options = {"Yes, please",
                        "No, thanks",
                        "No eggs, no ham!"};
    int n = JOptionPane.showOptionDialog(frame,
        "Would you like some green eggs to go "
        + "with that ham?",
        "A Silly Question",
        JOptionPane.YES_NO_CANCEL_OPTION,
        JOptionPane.QUESTION_MESSAGE,
        null,
        options,
        options[2]);

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 © 2026 vBulletin Solutions, Inc. All rights reserved.