Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    14

    [Swing] Chiusura JDialog modale

    Salve a tutti.
    Ho un piccolo problema con l'interfaccia grafica di un mio programma. Appena aperto, il programma mostra un ampio JFrame principale e davanti ad esso un JDialog modale che richiede alcune informazioni. Ciò che vorrei sarebbe fare in modo che, se l'utente preme il tasto di chiusura di default del JDialog (la x nella barra in alto, per intenderci), il programma si chiuda completamente. Tuttavia se scrivo nel JDialog setDefaultCloseOperation(JDialog.EXIT_ON_CLOSE), nel momento in cui clicco sul tasto di chiusura non succede assolutamente niente. Vorrei quindi sapere quali sono le istruzioni giuste per far comportare il JDialog come desidero.
    Grazie anticipatamente per l'aiuto.

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [Swing] Chiusura JDialog modale

    Originariamente inviato da Soel
    Tuttavia se scrivo nel JDialog setDefaultCloseOperation(JDialog.EXIT_ON_CLOSE), nel momento in cui clicco sul tasto di chiusura non succede assolutamente niente.
    Appunto, perché la documentazione di setDefaultCloseOperation() di JDialog non elenca EXIT_ON_CLOSE come opzione valida. Insomma .... non la puoi usare. E anzi ... probabilmente non te ne sei accorto, dovrebbe pure lanciare IllegalArgumentException se gli passi EXIT_ON_CLOSE!!!!!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    14
    Ho riprovato adesso, e non solo non viene sollevata nessuna eccezione, ma Eclipse stesso mi propone EXIT_ON_CLOSE come opzione di JDialog!
    Buono a sapersi se non è un'opzione concessa, comunque. Mi affidavo troppo ai suggerimenti dell'IDE a quanto pare.

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Soel
    non solo non viene sollevata nessuna eccezione
    Allora precisiamo: la documentazione javadoc di Java 6 dice chiaramente che viene lanciato IllegalArgumentException se il modo non è uno dei tre ammessi (appunto tutti escluso EXIT_ON_CLOSE). E pure il sorgente di JDialog è coerente con quanto detto (infatti c'è un if che testa il modo e se non è accettato c'è il throw che lancia la eccezione)
    Sui javadoc di versioni precedenti (1.4 e 5) in effetti non c'è tale indicazione della eccezione, quindi presumo che in versioni di Java più vecchie non lanci questa eccezione.

    Originariamente inviato da Soel
    ma Eclipse stesso mi propone EXIT_ON_CLOSE come opzione di JDialog!
    Questa è un'altra questione. Queste costanti sono nella interfaccia WindowConstants (che non ha metodi ... solo queste costanti) che è implementata da JDialog/JFrame/JInternalFrame. Quindi queste costanti sono tutte "di serie" e visibili in queste classi!!!

    Originariamente inviato da Soel
    Mi affidavo troppo ai suggerimenti dell'IDE a quanto pare.
    La documentazione javadoc bisognerebbe sempre leggerla ... magari anche sbirciare tra i sorgenti del framework, se necessario.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.