博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Swing手动进行最大化最小化
阅读量:6113 次
发布时间:2019-06-21

本文共 1514 字,大约阅读时间需要 5 分钟。

首先jdk的setExtendedState是有bug的,需要先重载JFrame的setExtendedState方法

/**     * Fix the bug "jframe undecorated cover taskbar when maximized". See:     * http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4737788     *     * @param state     */    @Override    public void setExtendedState(int state) {        if ((state & java.awt.Frame.MAXIMIZED_BOTH) == java.awt.Frame.MAXIMIZED_BOTH) {            Rectangle bounds = getGraphicsConfiguration().getBounds();            Rectangle maxBounds = null;            // Check to see if this is the 'primary' monitor            // The primary monitor should have screen coordinates of (0,0)            if (bounds.x == 0 && bounds.y == 0) {                Insets screenInsets = getToolkit().getScreenInsets(getGraphicsConfiguration());                maxBounds = new Rectangle(screenInsets.left, screenInsets.top, bounds.width - screenInsets.right - screenInsets.left                        , bounds.height - screenInsets.bottom - screenInsets.top);            } else {                // Not the primary monitor, reset the maximized bounds...                maxBounds = null;            }            super.setMaximizedBounds(maxBounds);        }        super.setExtendedState(state);    }

  

然后,最大化的时候就设置:

setExtendedState(Frame.MAXIMIZED_BOTH);

 

但是,最小化的时候,需要注意,设置成:

super.setExtendedState(Frame.ICONIFIED | getExtendedState());

否则,假如直接设置:super.setExtendedState(Frame.ICONIFIED);

还原的时候Sate在~Frame.ICONIFIED之后成了0,就变成了NORMAL态,这样是不对的。

 

转载于:https://www.cnblogs.com/TLightSky/p/3173899.html

你可能感兴趣的文章
智力大冲浪
查看>>
JSONP实现跨域
查看>>
Python基础班---第一部分(基础)---Python基础知识---计算机组成原理
查看>>
虚拟机VMware 9安装苹果MAC OSX 10.8图文教程
查看>>
POJ3694 Network
查看>>
微信小程序开发-框架
查看>>
redo、undo、binlog的区别
查看>>
DropDownList 控制日期控件显示格式
查看>>
RecycleView设置顶部分割线(记录一个坑)
查看>>
【设计模式系列】单例模式的7种写法
查看>>
汉字转拼音 (转)
查看>>
Machine Learning Techniques -6-Support Vector Regression
查看>>
会计基础_001
查看>>
Cordova 开发环境搭建及创建第一个app
查看>>
ajax请求拿到多条数据拼接显示在页面中
查看>>
小程序: 查看正在写的页面
查看>>
dedecms生成文档数据库崩溃 mysql daemon failed to start
查看>>
Linux的50个基本命令
查看>>
Objective-C中创建单例方法的步骤
查看>>
[转]无法安装MVC3,一直卡在vs10-kb2483190
查看>>