终于解决了用JAVA写窗口程序在不同的windows界面下的显示保持一致。
好像是两三年前的时候发现这个问题。
由于在windows经典界面与windows xp界面下,窗口的标题栏的高度是不一样的。
所以我们在用Java写GUI程序的时候,会遇到一个问题。
当我把一个JFrame显式的设为setSize(300,200);并且这个Container的Layout是null的时候,在windows经典界面和windows xp界面显示的时候是有差别的。因为windows xp界面下的标题栏比windows经典界面下的标题栏高了7个象素。
今天我终于找到了一个办法,可以不用去考试用户选择的是哪种windows界面,表现的结果都一样:
//先取得在windows经典模式下设置的宽与高
setSize(500,300);
int width=frame.getWidth();
int height=frame.getHeight();
frame.pack(); //这一行是最关键的一行
int rootPane_Y=frame.getRootPane().getY();
System.out.println("rootPane_Y:" + rootPane_Y);
//windows经典模式下的标题栏高度是23,这里重新调整窗口的高度
frame.setSize(width,height - 23 + rootPane_Y);
2007-04-17
终于解决了用JAVA写窗口程序在不同的windows界面下的显示保持一致。的更多相关文章
- java写桌面程序
一:使用java swing开发窗口程序 简述: 1.文章内容主要是使用java swing类库开发一个小的窗口程序,然后使用exe4j发布成exe可以安装的程序,让初学者对使用java来做pc软件开 ...
- Java写诗程序
import java.util.Random; public class test_word { public static void main(String[] args) { System.ou ...
- 如何让Java写的程序,脱离Eclipse在别人的电脑上运行?
Java程序运行,离不开JRE. 将JRE文件夹拷贝出来, 将编写程序的bin文件夹拷贝出来, 再编写一个bat文件. start jre\bin\javaw.exe -cp .\bin\ -Djav ...
- Java全栈程序员之03:Ubuntu下安装idea
JetBrains的产品我曾经用过很长一段时间,它们是resharper和dotcover.VS号称宇宙最强IDE,直到它遇到了resharper,我们才知道,原来vs可以更好.DotCover是一个 ...
- Java全栈程序员之02:Ubuntu下Java环境安装、配置、测试
在上文讲完之后,我们手里的ubuntu只能算是一个上网机,什么也干不了,本篇我们将折腾它为开发机. 这里,我们这里假定你对linux体系是初级选手,所以本篇会讲的啰嗦一点,高手就出门左转吧. 1.安装 ...
- Java全栈程序员之04:Ubuntu下安装MySQL、注册服务及Navcat
在安装MySQL之前,我们先来介绍一下Ubuntu下软件的安装方式.首先回顾下,我们安装JDK,使用的是后缀名为tar.gz的安装包.安装idea,使用的是tar.gz:那有没有别的安装方式呢? 1. ...
- Java全栈程序员之05:Ubuntu下安装TOMCAT、集成到IDEA
使用idea绝不是开发一个Hello World这么简单,现在我们要使用idea进行企业级开发(也就是JavaEE)的准备了,那么首先,我们就得有一个web应用服务器.选什么呢?当然首选是大名鼎鼎的T ...
- 解决XP“不是有效Win32程序” 不是改Platform toolset
背景 最近在写一个窗口程序,想在Windows XP上也能跑.先用vs 2015的App Wizard生成了一个实例窗口程序,按照网上大部分攻略,将 "Properties - Genera ...
- Xcode6 运行程序后,右侧Debug区域的Memory显示空白解决方法
http://chenyh-blog.com/%E8%9B%8B%E7%96%BC%E7%9A%84%E5%86%85%E5%AD%98-%E7%AC%AC%E4%B8%89%E7%AF%87-sdw ...
随机推荐
- elasticsearch介绍,安装,安装错误解决及相应插件安装
一.elasticsearch介绍 1.简介(使用的是nosql,更新比mongodb慢): ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎, ...
- MySQL系列:视图基本操作(3)
1. 视图简介 1.1 视图定义 视图是一种虚拟的表,是从数据库中一个或多个表中导出来的表. 视图可以从已存在的视图的基础上定义. 数据库中只存放视图的定义,并没有存放视图中的数据,数据存放在原来的表 ...
- Clover file list
/Volumes/EFI//EFI: total 4 drwxrwxrwx 1 jianweiliu staff 512 Apr 20 12:17 APPLE drwxrwxrwx@ 1 jianwe ...
- Newton方法
Newton方法主要解决无等式约束和等式约束的最优化方法. 1.函数进行二阶泰勒展开近似 Taylor近似函数求导等于0进而得到Newton步径.(搜索方向) 2.Newton减量(停止条件) 当1/ ...
- Qt 使用openGL 渲染NV12格式的视频
直接上代码 Nv12Render.h #ifndef NV12RENDER_H #define NV12RENDER_H #include <QOpenGLFunctions> #incl ...
- docker --环境变量制作模板
比如你现在有配置文件:decoder.conf decoder.conf里面有两个配置项写的是: THREAD_NUM:24 GPU_ID:0 现在你希望通过某个统一的配置来修改这些配置项,以免在部署 ...
- Codeforces Round #545 Div. 1自闭记
A:求出该行该列各有多少个比其小的取max,该行该列各有多少个比其大的取max,加起来即可. #include<iostream> #include<cstdio> #incl ...
- Educational Codeforces Round 60 Div. 2
F:考虑对于每个字母对求出删掉哪些字符集会造成字符串不合法,只要考虑相邻出现的该字母对即可,显然这可以在O(np2)(或小常数O(np3))内求出.然后再对每个字符集判断是否能通过一步删除转移而来即可 ...
- PHP——生成唯一序列号UUID
<?php function uuid($uid = '') { $chars = md5(uniqid(mt_rand(), true)); $uuid = substr($chars, 0, ...
- codechef EBAIT Election Bait【欧几里得算法】
题目分析: 欧几里得算法来处理一类分数问题,分数问题的形式如下 $\frac{a}{b} < \frac{p}{q} < \frac{c}{d}$ 当a=0时,答案等于$\frac{1}{ ...