NetBeans 8.2运行Swing应用窗口及组件过小问题求助(Win10 Surface Pro3)
解决NetBeans中Swing程序运行时窗口及组件极小的问题
我之前也碰到过完全一样的情况——高DPI显示器下,NetBeans IDE自身的缩放问题搞定了,但跑出来的Swing程序缩得像小蚂蚁,根本没法操作。下面几个方法亲测有效,你可以挨个试试:
给当前项目添加VM运行参数(最推荐)
右键你的项目 → 选择「属性」→ 切换到「运行」标签页 → 在「VM选项」里输入以下参数之一:- 想让程序自动适配系统DPI的话,用:
-Dsun.java2d.dpiaware=false - 想手动指定精准缩放比例(比如200% DPI就设2,150%设1.5),用:
-Dsun.java2d.uiScale=2
设置完点击「确定」,下次运行项目时,程序就会带着这个参数启动,组件和窗口就能正常缩放了。
- 想让程序自动适配系统DPI的话,用:
打包程序时配置参数(如果要分发程序)
要是你打算把程序打包成JAR或者EXE,得把缩放参数写到启动配置里:- 打包成JAR的话,可以修改项目的
MANIFEST.MF文件,添加一行:VM-Options: -Dsun.java2d.uiScale=2(注意部分打包工具需要单独在设置面板里指定VM参数) - 生成EXE安装包的话,找到对应的启动配置文件(比如
your_app.conf这类),把VM参数加进去,确保程序启动时加载这个配置。
- 打包成JAR的话,可以修改项目的
全局应急配置(不推荐,影响所有Java程序)
要是懒得每个项目单独设置,可以在系统里加个环境变量:
新建系统环境变量_JAVA_OPTIONS,值设为-Dsun.java2d.uiScale=2。这样所有Java程序启动时都会自动用这个参数,但可能会影响其他不需要缩放的Java程序,所以谨慎使用。
另外补充下,如果你用的是Java 9及以上版本,配合加上-Dawt.useSystemAAFontSettings=on和-Dswing.aatext=true,能让程序里的字体显示更清晰,体验会更好。
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

