Java Tutorial/Swing/JFrame States
Содержание
- 1 Deiconifies a frame; the maximized bits are not affected.
- 2 Determining When a Component Has Been Made Visible, Moved, or Resized
- 3 Determining When a Frame or Window Is Iconized or Maximized
- 4 Determining When a Frame or Window Is Opened or Closed
- 5 Iconifies a frame; the maximized bits are not affected.
- 6 Maximizes a frame; the iconified bit is not affected
- 7 Setting the Bounds for a Maximized Frame
Deiconifies a frame; the maximized bits are not affected.
<source lang="java">
import java.awt.Frame; public class Main {
public static void main(String[] argv) throws Exception { Frame frame = new Frame(); frame.setSize(300, 300); frame.setVisible(true); deiconify(frame); } public static void deiconify(Frame frame) { int state = frame.getExtendedState(); // Clear the iconified bit state &= ~Frame.ICONIFIED; // Deiconify the frame frame.setExtendedState(state); }
}</source>
Determining When a Component Has Been Made Visible, Moved, or Resized
<source lang="java">
import java.awt.ruponent; import java.awt.Dimension; import java.awt.Point; import java.awt.event.ruponentAdapter; import java.awt.event.ruponentEvent; import java.awt.event.ruponentListener; import javax.swing.JFrame; public class Main {
public static void main() { ComponentListener listener = new ComponentAdapter() { public void componentShown(ComponentEvent evt) { Component c = (Component) evt.getSource(); System.out.println("Component is now visible"); } public void componentHidden(ComponentEvent evt) { Component c = (Component) evt.getSource(); System.out.println("Component is now hidden"); } public void componentMoved(ComponentEvent evt) { Component c = (Component) evt.getSource(); Point newLoc = c.getLocation(); System.out.println("Get new location"); } public void componentResized(ComponentEvent evt) { Component c = (Component) evt.getSource(); Dimension newSize = c.getSize(); System.out.println("Get new size"); } }; JFrame frame = new JFrame(); frame.setSize(300, 300); frame.addComponentListener(listener); frame.setVisible(true); }
}</source>
Determining When a Frame or Window Is Iconized or Maximized
<source lang="java">
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); }
}</source>
Determining When a Frame or Window Is Opened or Closed
<source lang="java">
import java.awt.Frame; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; public class Main {
public static void main() { Frame frame = new Frame(); WindowListener listener = new WindowAdapter() { public void windowOpened(WindowEvent evt) { Frame frame = (Frame) evt.getSource(); System.out.println(frame.getTitle()); } public void windowClosing(WindowEvent evt) { Frame frame = (Frame) evt.getSource(); System.out.println(frame.getTitle()); } public void windowClosed(WindowEvent evt) { Frame frame = (Frame) evt.getSource(); System.out.println(frame.getTitle()); } }; frame.addWindowListener(listener); frame.setVisible(true); }
}</source>
Iconifies a frame; the maximized bits are not affected.
<source lang="java">
import java.awt.Frame; public class Main {
public static void main() { Frame frame = new Frame(); frame.setSize(300, 300); frame.setVisible(true); iconify(frame); } public static void iconify(Frame frame) { int state = frame.getExtendedState(); // Set the iconified bit state |= Frame.ICONIFIED; // Iconify the frame frame.setExtendedState(state); }
}</source>
Maximizes a frame; the iconified bit is not affected
<source lang="java">
import java.awt.Frame; public class Main {
public static void main(String[] argv) throws Exception { Frame frame = new Frame(); frame.setSize(300, 300); frame.setVisible(true); minimize(frame); } public static void minimize(Frame frame) { int state = frame.getExtendedState(); // Clear the maximized bits state &= ~Frame.MAXIMIZED_BOTH; // Maximize the frame frame.setExtendedState(state); }
}</source>
Setting the Bounds for a Maximized Frame
<source lang="java">
import java.awt.Frame; import java.awt.Rectangle; public class Main {
public static void main() { Frame frame = new Frame(); Rectangle bounds = new Rectangle(20, 20, 200, 200); frame.setMaximizedBounds(bounds); frame.setVisible(true); }
}</source>