2012-06-22 8 views
6

Gibt es einen Weg zu einem Ereignis-Listener zu einem JFrame-Objekt zu erkennen, wenn der Benutzer auf die Schaltfläche zum Maximieren oder Minimieren der Schaltflächen klickt?Wie erkennt man JFrame-Fenster minimieren und maximieren Ereignisse?

Am das Objekt JFrame wie folgt verwendet wird:

JFrame frame = new JFrame("Frame");

+1

Haben Sie ein bestimmtes Ziel? – trashgod

+0

Ja, ich muss wissen, wann das Fenster in der Größe geändert wird, damit ich die Komponenten innerhalb des Rahmens neu zeichnen kann. –

+1

Die Methoden 'validate() und' repaint() 'werden automatisch aufgerufen, wenn die Größe des Rahmens geändert wird, aber Sie müssen möglicherweise andere Datenstrukturen aktualisieren; siehe auch ['AnimationTest'] (http://stackoverflow.com/a/3256941/230513). – trashgod

Antwort

4

Ja, Sie können dies tun, indem Sie "WindowListener" -Methoden implementieren, nämlich windowIconified (WindowEvent e) von windowDeconified (WindowEvent e). Für weitere Informationen, besuchen this

4
  1. einen Rahmen erstellen und Hörer hinzu:

JFrame frame = new JFrame(); 
 
frame.addWindowStateListener(new WindowStateListener() { 
 
    public void windowStateChanged(WindowEvent arg0) { 
 
     frame__windowStateChanged(arg0); 
 
    } 
 
});

  1. Implementieren Sie den Hörer:

public void frame__windowStateChanged(WindowEvent e){ 
 
    // minimized 
 
    if ((e.getNewState() & Frame.ICONIFIED) == Frame.ICONIFIED){ 
 
     _print("minimized"); 
 
    } 
 
    // maximized 
 
    else if ((e.getNewState() & Frame.MAXIMIZED_BOTH) == Frame.MAXIMIZED_BOTH){ 
 
     _print("maximized"); 
 
    } 
 
}

Verwandte Themen