Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    755

    evento alla chiusura di un programma

    nel mio software vorrei che se l'utente chiudesse il programma(l'utente preme la crocetta in alto a destra nella finestra) comparisse un messaggio(tramite JOptionPane) che chiede se vuole salvare il progetto.Che evento viene generato quando si chiude il programma(l'utente preme "chiudi" in alto a destra)?
    come faccio?
    se volete anche tramite codice

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    502

    Re: evento alla chiusura di un programma

    Originariamente inviato da zipangulu
    nel mio software vorrei che se l'utente chiudesse il programma(l'utente preme la crocetta in alto a destra nella finestra) comparisse un messaggio(tramite JOptionPane) che chiede se vuole salvare il progetto.Che evento viene generato quando si chiude il programma(l'utente preme "chiudi" in alto a destra)?
    come faccio?
    se volete anche tramite codice
    codice:
    myframe.addWindowListener(new java.awt.event.WindowAdapter() {
        public void windowClosing(WindowEvent winEvt) {
            // Perhaps ask user if they want to save any unsaved files first.
            System.exit(0); 
        }
    });
    Sempre che sia un JFrame.
    al volante son nervoso

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    755
    il codice che mi hai dato tu va bene:
    io ho fatto:
    codice:
    this.addWindowListener(new java.awt.event.WindowAdapter() {
    		       public void windowClosing(WindowEvent winEvt) {
    		           int opzione=new JOptionPane().showConfirmDialog(null,"vuoi salvare il lavoro?");
    		           if(opzione==JOptionPane.YES_OPTION){
    					   salva.doClick();             //salva è un item del menu
    				   }else if(opzione==JOptionPane.NO_OPTION){
                                               System.exit(0)
    				   }else if(opzione==JOptionPane.CANCEL_OPTION){
                                               //do nothing
    				   }else{
                                               //do nothing
                                       }
    
    		       }
    		   });
    ma ora ho un altro problema:io ho messo che se viene premuto "no" chiude il programma senza salvare,se è premuto "annulla" ho messo che non deve fare niente ma chiude comunque la finestra...cosa dovrei metterci per fare in modo che premendo annulla la finestra non venga chiusa e in pratica non faccia niente?

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    502
    Originariamente inviato da zipangulu
    il codice che mi hai dato tu va bene:
    io ho fatto:
    codice:
    this.addWindowListener(new java.awt.event.WindowAdapter() {
    		       public void windowClosing(WindowEvent winEvt) {
    		           int opzione=new JOptionPane().showConfirmDialog(null,"vuoi salvare il lavoro?");
    		           if(opzione==JOptionPane.YES_OPTION){
    					   salva.doClick();             //salva è un item del menu
    				   }else if(opzione==JOptionPane.NO_OPTION){
                                               System.exit(0)
    				   }else if(opzione==JOptionPane.CANCEL_OPTION){
                                               //do nothing
    				   }else{
                                               //do nothing
                                       }
    
    		       }
    		   });
    ma ora ho un altro problema:io ho messo che se viene premuto "no" chiude il programma senza salvare,se è premuto "annulla" ho messo che non deve fare niente ma chiude comunque la finestra...cosa dovrei metterci per fare in modo che premendo annulla la finestra non venga chiusa e in pratica non faccia niente?
    Non l'ho mai fatto, ma dovresti impostare il setDefaultCloseOperation a DO_NOTHING_ON_CLOSE, e poi gestire tu il discorso della chiusura della finestra, oppure di lasciarla visibile.
    al volante son nervoso

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    755
    bè questa come idea non è male!

    cmq se hai/avete altre idee senza modificare le DefaultCloseOperation fammi/fatemi sapere

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    502
    Originariamente inviato da zipangulu
    bè questa come idea non è male!

    cmq se hai/avete altre idee senza modificare le DefaultCloseOperation fammi/fatemi sapere
    Ho provato e non è un "dramma", nel senso che imposti solo un flag con la DefaultCloseOperation.

    Mi sembra che il WindowEvent non si possa chiamare con il metodo consume(), e quindi farlo "morire" senza colpo ferire, quindi non resta che bloccare la chiusura automatica e gestirla manualmente con il JOptionPane e la funzione jFrame.dispose() per chiudere.
    al volante son nervoso

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.