Visualizzazione dei risultati da 1 a 7 su 7

Discussione: eventi java

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2012
    residenza
    matrix
    Messaggi
    56

    eventi java

    codice:
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    
    public class Gui extends JFrame
    {
        public Gui()
        {
            JFrame f = new JFrame();
            f.setTitle("GUI");
            f.setBackground(Color.red);
            f.setBounds(100,100,300,300);
            f.setLayout(null);
            this.addWindowListener(new Ascoltatore());
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
            f.setVisible(true);
        }
        public static void main(String[] args) 
        {
            Gui p = new Gui();
        }
        class Ascoltatore extends WindowAdapter
        {
            public void WindowClosing(WindowEvent oggettoEvento)
            {
                String chiusura="Grazie per aver utilizzato questo programma";
                JOptionPane.showMessageDialog(null, chiusura);
                System.exit(0);            
            }
        }
    }
    Salve a tutti, quando eseguo questo programma non fa niente, oltre ad aprirsi il frame quando clicco sulla X per chiuderlo dovrebbe mostrami il messaggio contenuto nella stringa 'chiusura' invece non succede niente, potreste aiutarmi?
    Un'altra cosa che vorrei chiedervi, visto che il libro da cui sto cercando di imparare non spiega, e' il significato di alcuni statements:
    - a cosa serve 'extends WindowAdapter'
    - a cosa serve l'oggetto WindowEvent chiamato oggettoEvento
    - a cosa serve 'System.exit(0)'

    Grazie in anticipo

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    Java ha un forum dedicato.

    Sposto.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Quel codice è sbagliato.
    La tua classe GUI è già un JFrame... perchè nel costruttore ne costruisci un'altro?

    codice:
    JFrame f = new JFrame();
    Questa riga crea una nuova finestra... diversa, che nulla ha a che vedere con l'oggetto di classe Gui.

    Non creare una nuova finestra, ma usa quella che stai creando (nel costruttore):

    codice:
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    
    public class Gui extends JFrame
    {
        public Gui()
        {
            setTitle("GUI");
            setBackground(Color.red);
            setBounds(100,100,300,300);
            setLayout(null);
            addWindowListener(new Ascoltatore());
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
            setVisible(true);
        }
        public static void main(String[] args) 
        {
            Gui p = new Gui();
        }
        class Ascoltatore extends WindowAdapter
        {
            public void WindowClosing(WindowEvent oggettoEvento)
            {
                String chiusura="Grazie per aver utilizzato questo programma";
                JOptionPane.showMessageDialog(null, chiusura);
                System.exit(0);            
            }
        }
    }
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2012
    residenza
    matrix
    Messaggi
    56
    grazie
    però l'evento di chiusura non va ancora

  5. #5
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: eventi java

    Originariamente inviato da astolfo96
    codice:
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    
    public class Gui extends JFrame
    {
        public Gui()
        {
            JFrame f = new JFrame();
            f.setTitle("GUI");
            f.setBackground(Color.red);
            f.setBounds(100,100,300,300);
            f.setLayout(null);
            this.addWindowListener(new Ascoltatore());
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
            f.setVisible(true);
        }
        public static void main(String[] args) 
        {
            Gui p = new Gui();
        }
        class Ascoltatore extends WindowAdapter
        {
            public void WindowClosing(WindowEvent oggettoEvento)
            {
                String chiusura="Grazie per aver utilizzato questo programma";
                JOptionPane.showMessageDialog(null, chiusura);
                System.exit(0);            
            }
        }
    }
    Salve a tutti, quando eseguo questo programma non fa niente, oltre ad aprirsi il frame quando clicco sulla X per chiuderlo dovrebbe mostrami il messaggio contenuto nella stringa 'chiusura' invece non succede niente, potreste aiutarmi?
    Quel codice ha alcuni problemi.

    1. Perché estendi JFrame ma poi istanzi e usi un nuovo JFrame?
    Tra l'altro il listener lo associ a this (istanza di Gui) ma tu usi f, che è un altro oggetto.

    2. Il metodo di cui fare l'override per intercettare la chiusura è windowClosing e non WindowClosing.
    Te ne saresti accorto usando @Override.


    Originariamente inviato da astolfo96
    Un'altra cosa che vorrei chiedervi, visto che il libro da cui sto cercando di imparare non spiega, e' il significato di alcuni statements:
    Grazie in anticipo
    O_o


    Originariamente inviato da astolfo96
    - a cosa serve 'extends WindowAdapter'
    Cosa non capisci? extends o WindowAdapter?

    Originariamente inviato da astolfo96
    - a cosa serve l'oggetto WindowEvent chiamato oggettoEvento
    Contiene le informazioni sull'evento generato.

    Originariamente inviato da astolfo96
    - a cosa serve 'System.exit(0)'
    A far terminare il programma?
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2012
    residenza
    matrix
    Messaggi
    56
    Grazie mille
    mi hai risolto molti problemi

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Non avevo controllato il codice del WindowAdapter... mi ero fermato all'errore iniziale.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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.