Java - Kako zatvoriti AWT prozor u Javi?


Možemo zatvoriti AWT prozor ili okvir pozivanjem metoda dispose() ili System.exit() unutar windowClosing() metode. Metoda windowClosing() se nalazi u WindowListener interfejsu i klasi WindowAdapter. Klasa WindowAdapter implementuje WindowListener interfejse. Obezbeđuje podrazumjevanu implementaciju svih 7 metoda WindowListener interfejsa. Da biste nadjačali metodu windowClosing(), možete koristiti klasu WindowAdapter ili WindowListener interfejs. Ako implementujete WindowListener interfejs, bićete primorani da nadjačate svih 7 metoda WindowListener interfejsa. Zato je bolje koristiti klasu WindowAdapter.



Različiti načini za nadjačavanje metode windowClosing().

Postoji mnogo načina da se nadjača metoda windowClosing():

  • Pomoću anonimne klase
  • Nasljeđivanjem klase WindowAdapter
  • Implementacijom WindowListener interfejsa


Zatvori AWT prozor Primjer 1: Anonimna klasa

U sljedećem primjeru implementujemo Windows metodu windowClosing() koristeći klasu Anonymous.

// Importovanje potrebnih awt biblioteka  
import java.awt.*;    
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;    
import java.awt.event.WindowListener;    
  
// Klasa koja nasljeđuje klasu Frame 
public class Main extends Frame {    
    // Konstruktor klase  
    Main() {    
        // Dodavanje WindowListener-a u okvir (Frame)
        // i korištenjem metode windowClosing() klase WindowAdapter
        addWindowListener (new WindowAdapter() {    
            public void windowClosing (WindowEvent e) {    
                dispose();    
            }    
        });    
        // Postavljanje veličine, izgleda i vidljivosti okvira
        setSize (400, 400);    
        setLayout (null);    
        setVisible (true);    
    }    
    // Metoda main
    public static void main (String[] args) {    
        new Main();    
    }     
}

Kada kliknete na X vaš se okvir zatvara. Prikaz koda iz gornjeg primjera izgledaće ovako:



Zatvori AWT prozor Primjer 2: proširenje WindowAdapter

U sljedećem primjeru implementujemo funkcionalnost zatvaranja prozora pomoću klase WindowAdapter.

// Importovanje potrebnih awt biblioteka
import java.awt.*;    
import java.awt.event.*;    
  
// Klasa koja nasljeđuje klasu WindowAdapter 
public class Main extends WindowAdapter {    
    // Objekt Frame 
    Frame f;    
    // Konstruktor klase  
    Main() {    
        // Kreiranje okvira 
        f = new Frame();    
        // Dodavanje WindowListener-a u okvir
        f.addWindowListener (this);    
        
        // Postavljanje veličine, izgleda i vidljivosti okvira 
        f.setSize (400, 400);    
        f.setLayout (null);    
        f.setVisible (true);    
    }    
  
    // Nadjačavanje (overriding) metode windowClosing()   
    public void windowClosing (WindowEvent e) {    
        f.dispose();    
    }    
    // Metoda main  
    public static void main(String[] args) {    
        new Main();    
    }    
}

Kada kliknete na X vaš se okvir zatvara. Prikaz koda iz gornjeg primjera izgledaće ovako:



Zatvori AWT prozor Primjer 3: implementacija WindowListener-a

U sljedećem primjeru implementujemo WindowListener interfejs za prikaz funkcionalnosti zatvaranja AWT prozora.

// Importovanje potrebnih awt biblioteka 
import java.awt.*;    
import java.awt.event.WindowEvent;    
import java.awt.event.WindowListener;    
  
// Klasa koja nasljeđuje klasu Frame i implementuje WindowListener interfejs  
public class Main extends Frame implements WindowListener {    
    // Konstruktor  
    Main() {    
        // Dodavanje WindowListener-a u okvir 
        addWindowListener(this);    
     
        // Postavljanje veličine, izgleda i vidljivosti okvira  
        setSize(400,400);    
        setLayout(null);    
        setVisible(true);    
    }    
        
    // Metoda main  
    public static void main(String[] args) {    
        new Main();    
    }    
    public void windowActivated(WindowEvent e) {}    
    public void windowClosed(WindowEvent e) {}    
    public void windowClosing(WindowEvent e) {    
        dispose();    
    }    
    public void windowDeactivated(WindowEvent e) {}    
    public void windowDeiconified(WindowEvent e) {}    
    public void windowIconified(WindowEvent e) {}    
    public void windowOpened(WindowEvent arg0) {}    
}

Kada kliknete na X vaš se okvir zatvara. Prikaz koda iz gornjeg primjera izgledaće ovako: