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

    Primi passi con swing - non si chiude il programma

    Salve
    Sto seguendo la guida del libro "Programmazione di base e avanzata" di Walter Switch della Pearson

    sono arrivato alla parte in cui tratta Swing

    oggi ho provato i primi due listati, ma ... qualcosa no torna.
    in pratica dovrebbe aprirsi una finestra, e cliccando la chiusura la finestra dorebbe sparire ed il programma interrompersi
    tutto ok, la finestra si chiude ma il programma rimane in esecuzione. cosa può essere ?

    ecco i listati :

    codice:
    import javax.swing.JFrame;import javax.swing.JLabel;
    
    
    public class PrimoEsempioSwing {
        public static final int LARGHEZZA = 300;
        public static final int ALTEZZA = 200;
        
        public static void main(String[] args) {
            JFrame finestra = new JFrame();
            finestra.setSize(LARGHEZZA, ALTEZZA);
            JLabel etichetta = new JLabel("Non premere quel pulsante !");
            
            finestra.add(etichetta);
            
            DistruttoreFinestra ascoltatore = new DistruttoreFinestra();
            finestra.addWindowListener(ascoltatore);
            
            finestra.setVisible(true);
    
    
        }
    
    
    }
    codice:
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    
    
    public class DistruttoreFinestra extends WindowAdapter {
        public void WindowClosing(WindowEvent e) {
            System.out.println("chiamato il Distruttore di Finestra !");
            System.exit(0);
        }
        
    }
    Nota 1 :
    codice:
    System.out.println("chiamato il Distruttore di Finestra !");
    l'ho inserito per vedere se nella console compariva tale scritta l momento in cui chiudevo la finestra, ma nulla, non compare

    Nota 2 : Uso Eclipse

    Grazie a tutti

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2014
    residenza
    Padova
    Messaggi
    361
    Ciao, benvenuto nel forum

    La tua finestra non si chiude perché hai scritto il metodo windowClosing con la prima "w" maiuscola, quindi il tuo metodo non fa l'ovveride del metodo definito in WindowAdapter e pertanto non viene richiamato dalla pressione del pulsante per chiudere la finestra.

    Quando fai l'ovveride di un metodo puoi utilizzare l'annotazione @Override prima della scrittura del metodo: in questo modo se sbagli a scrivere la definizione del metodo o un tipo di parametro, ricevi un errore in compilazione se il metodo che stai definendo non è effettivamente l'override di un metodo di una superclasse.

    Comunque se il comportamento che vuoi ottenere alla chiusura della finestra è semplicemente la terminazione del programma e nulla di più, è superfluo creare un WindowAdapter e puoi utilizzare la semplice istruzione:

    codice:
    finestra.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    6
    è vero che sono agli inizi nel mondo della programmazione, ma che figura !
    sistemata la 'w' funziona correttamente.

    grazie mille Ansharja !

    ciao
    Andrea

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2014
    residenza
    Padova
    Messaggi
    361
    Prego e tranquillo, errori così sono sempre in agguato, solo che col tempo te ne accorgerai presto.

    Ciao

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.