Determining When a Frame or Window Is Iconized or Maximized : JFrame States « Swing « Java Tutorial





import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowStateListener;

public class Main {
  public static void main() {

    Frame frame = new Frame();

    WindowStateListener listener = new WindowAdapter() {
      public void windowStateChanged(WindowEvent evt) {
        int oldState = evt.getOldState();
        int newState = evt.getNewState();

        if ((oldState & Frame.ICONIFIED) == 0 && (newState & Frame.ICONIFIED) != 0) {
          System.out.println("Frame was iconized");
        } else if ((oldState & Frame.ICONIFIED) != 0 && (newState & Frame.ICONIFIED) == 0) {
          System.out.println("Frame was deiconized");
        }

        if ((oldState & Frame.MAXIMIZED_BOTH) == 0 && (newState & Frame.MAXIMIZED_BOTH) != 0) {
          System.out.println("Frame was maximized");
        } else if ((oldState & Frame.MAXIMIZED_BOTH) != 0 && (newState & Frame.MAXIMIZED_BOTH) == 0) {
          System.out.println("Frame was minimized");
        }
      }
    };

    frame.addWindowStateListener(listener);
    frame.setVisible(true);
  }
}










14.81.JFrame States
14.81.1.Setting the Bounds for a Maximized Frame
14.81.2.Iconifies a frame; the maximized bits are not affected.
14.81.3.Deiconifies a frame; the maximized bits are not affected.
14.81.4.Maximizes a frame; the iconified bit is not affected
14.81.5.Determining When a Frame or Window Is Opened or Closed
14.81.6.Determining When a Frame or Window Is Iconized or Maximized
14.81.7.Determining When a Component Has Been Made Visible, Moved, or Resized