JAVA窗体最大化、最小化、恢复状态及获得焦点
日常编写JAVA应用程序中,肯定会遇到这种问题:当第一次点击菜单A时,A会初始化一个窗体B,此时不关闭窗体B,再次点击菜单,通常程序的做法是会判断B是否存在,如果存在则直接使用B。(也就是设计模式中的单例模式)
而此时B有可能有两种状态:1、被最小化在任务栏;2、被主窗体覆盖且没有最小化;
这时我们需要在点击菜单A时,恢复窗体B状态,使窗体B能够显示出来并且获取焦点,OK,直接上代码:
import java.awt.Frame; import javax.swing.JFrame; public class WindowAction { /** * @param args * @throws InterruptedException */ public static void main(String[] args) throws InterruptedException { JFrame frame = new JFrame(); frame.setBounds(0, 0, 500, 400); frame.setVisible(true); Thread.sleep(2000); //最小化 frame.setState(Frame.ICONIFIED); Thread.sleep(2000); //在最小化到系统栏或者最大化时恢复默认状态 frame.setState(Frame.NORMAL); Thread.sleep(2000); //最大化 frame.setExtendedState(Frame.MAXIMIZED_BOTH); //在linux系统中要通过点击按钮并获得A窗体后面的B窗体 //需要设置B窗体的Visible=true,windows下则不用 frame.setVisible(true); //获取焦点 frame.requestFocus(); } }