最近工作上遇到了这个问题,浅浅的研究了一点,这里记录一下。
有不同意见欢迎评论区交流。
需求
项目需求:
客户已经开发好了应用,不过应用在系统上看起来有点小,希望应用能在不修改代码的情况下,通过其他手段让窗口能自适应。
环境
系统:Ubuntu2004
硬件:amd64主机
方案一
我们优先考虑使用指令的方式解决这个问题,这里有两种方案。
#假如应用为SimpleApp.class
1. GDK_SCALE=2 java SimpleApp
2. java -Dsun.java2d.uiScale=2.0 SimpleApp
这两条指令都是将窗口设置为现在的2倍,这种指令只支持整数倍缩放。
(看其他的博客写的支持1.5这种小数缩放,不过我测试没效果)
ps:这个放大不是完全的等比例放大,放大的过程可能会打乱窗口布局。
这里的缩放是JDK9引入的新功能:JEP 263: HiDPI Graphics on Windows and Linux
是JDK8上的issue转化来的:JDK-8055212
也就是说Java8上没法缩放。
我没有找到这个功能backport到Java8的patch,有发现的朋友欢迎在评论区补充。
方案二
使用Java8的话就没法缩放窗口,因此又查到了另一个方案。
GitHub - rubo77/set_resolution.py
这是一个Python脚本,为特定的窗口设置分辨率。
-------------------------
待续未完。