Java: 在不同windows主题下,JFrame窗口设置最佳高度的解决方案
//设置窗口的大小,无论使用怎样的windows主题,都能灵活的应对,显示合适的窗口大小,一定要在JFrame.setVisible(true)之前调用, //替代传统的frame.setSize(width,height);
public static void setSize(JFrame frame, int width, int height)
{
//一定要在JFrame显示之前调用
frame.pack(); //在默认的setResizable(true); 情况下,titleDefaultHeight = 27,但如果 setResizable(false); titleDefaultHeight = 25
int titleDefaultHeight = frame.isResizable() ? 27 : 25; //默认开发阶段使用windows 经典主题,标题栏高度= 27 int containerHeight = frame.getContentPane().getHeight();
//System.out.println("containerHeight:" + containerHeight); //windows 经典主题或xp主题下 = 1
//int rootPaneHeight = frame.getRootPane().getHeight(); //取得的高度和container的高度是一样的 int frameHeight = frame.getHeight();
//System.out.println("frameHeight:" + frameHeight); //windows经典主题下= 28, windows xp 主题下 = 33 int titleHeight = frameHeight - containerHeight; //这里就可以得到当前标题栏的实际高度
if (titleHeight > titleDefaultHeight)
{
int h = titleHeight - titleDefaultHeight; //得到当前使用的主题,标题栏 - 经典主题下的标题栏高度 = 差值
frame.setSize(width, height + h); //最终确定窗口的高度
}
else
{
frame.setSize(width, height);
}
}
Java: 在不同windows主题下,JFrame窗口设置最佳高度的解决方案的更多相关文章
- windows环境下pycharm如何设置Linux编码
最近写代码一直在windows环境下,写完之后再传到Linux端就会出现代码格式错乱. 解决办法: 在windows端的pycharm代码格式设置为unix and os及可以解决这个问题. 如果你要 ...
- java环境搭建--Windows 10下java环境搭建
1.下载jdk:https://www.oracle.com/java/technologies/javase-jdk8-downloads.html(注意需要注册登录Oracle账号) 2.安装此处 ...
- Java基础知识——windows系统下安装JDK
(作者声明:文章引用了其他作者的文章,但因为笔记内容时间过久,已经忘记从哪里摘录下来的了.若无意间侵犯到原作者您的权利,对不起!您可以联系我,我这边会马上进行修改,谢谢!) 1.首先我们需要下载jav ...
- mac和windows系统下 eclipse svn 设置代理服务器
公司svn服务器在海外,有时候迫不得已svn也得设置代理 网上查了好长时间都只有windows下如何设置,mac系统下的教程很少. 1.在windows下设置方法如下 找到C:\Documentsan ...
- nutch2.x在eclipse+windows环境下运行遇到的一些问题的解决方案
1.问题 permission /tmp/hadoop.... 解决方法:下载hadoop源码包,修改org.apache.hadoop.fs.FileUtil.java文件中方法checkRetur ...
- windows系统下npm升级的正确姿势以及原理
本文来自网易云社区 作者:陈观喜 网上关于npm升级很多方法多种多样,但是在windows系统下不是每种方法都会正确升级.其中在windows系统下主要的升级方法有以下三种: 首先最暴力的方法删掉no ...
- 终于解决了用JAVA写窗口程序在不同的windows界面下的显示保持一致。
好像是两三年前的时候发现这个问题. 由于在windows经典界面与windows xp界面下,窗口的标题栏的高度是不一样的. 所以我们在用Java写GUI程序的时候,会遇到一个问题. 当我把一个JFr ...
- java:工具(汉语转拼音,压缩包,EXCEL,JFrame窗口和文件选择器,SFTP上传下载,FTP工具类,SSH)
1.汉语转拼音: import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.format.HanyuP ...
- windows环境下protobuf的java操作{编译,序列化,反序列化}
google protocol buffer的使用和原理 概况: Protocol Buffers(也就是protobuf)是谷歌的语言中立的.平台中立的.可扩展的用于序列化结构化的数据: windo ...
随机推荐
- markdown操作手册
**1.标题** # h1 h1自带分割线 ## h2 ### h3 #### h4 ##### h5 ###### h6 **2.圆点** - 圆点 **3.分割线,-和*都可以** --- *** ...
- Nginx报错: "Too many open files accept" 和 "could not build the server_names_hash"
一.访问Nginx时,报错:"accept() failed (24: Too many open files)"原因时:nginx的连接数超过了系统设定的最大值造成的. 处理办法 ...
- 每天学习SQL
SELECT table_name FROM information_schema.tables WHERE table_schema='survey170227_main' AND table_na ...
- 11-Python3从入门到实战—基础之生成器和迭代器
Python从入门到实战系列--目录 切片 Python提供切片(Slice)操作符用来获取列表.元组等数据中的部分元素:如,读取列表 list[m:n]:表示获取m-n区间的元素 list[m:n: ...
- vue 单文件 样式写了scoped 不能覆盖框架原有样式的解决办法
vue 单文件 样式写了scoped 不能覆盖框架原有样式的解决办法 在vue 里面<style scoped></style> 是为了让样式只影响本身自己组件的样式,不改变全 ...
- centos7编译安装zabbix(附带编译安装lnmp)
先把防火墙和selinux关闭: sytemctl stop firewalld setenforce 0 1.yum安装依赖: yum -y install wget openssl* gcc gc ...
- 软件工程(GZSD2015) 第三次作业提交进度
第三次作业题目请查看这里:软件工程(GZSD2015)第三次作业 开始进入第三次作业提交进度记录中,童鞋们,虚位以待哈... 2015年4月19号 徐镇.尚清丽,C语言 2015年4月21号 毛涛.徐 ...
- Sonatype Nexus 2.11.1-01 使用入门
nexus安装与启动 linux下: 安装路径 /home/maven/nexus-2.11.1-01/ 启动方法 ./bin/nexus start windows下: 管理员模式运行cmd.exe ...
- SpringMVC一例 是否需要重定向
在ASP.NET MVC下: return view("List") 和 return RedirectToAction("List") 百度知道的最佳答案: ...
- TFS2018 连接 K8S集群的方法
这一块自己没做测试,与平台樊娟娟沟通后,直接从history命令里面找到的相关命令,感谢原作者以及提供帮助的同事网友.如果有问题后续再改. 1. 在服务里面增加endpoint 见图 创建 连接名称随 ...