如何解决Eclipse RCP应用程序中的Jfree图表在OpenJDK 14中按比例放大
我有一个Eclipse RCP应用程序,其中使用ChartFactory创建了一个XY折线图。该应用程序是使用Oracle JDK 8开发的。在其中,Jfree图表运行良好。现在,当我尝试将应用程序移植到OpenJDK 14时,图表中的所有元素都按1.25缩放。该应用程序的其余部分没有引起任何问题。我试图在Jfreechart论坛中找到解决方案,但无法解决该问题。
我创建的SWT合成内没有显示基本完整的图表。但是,如果我还原应用程序,则会显示完整的图表,并且如果我最大化应用程序,则将保留完整的图表。
如果任何人在移植应用程序时遇到相同的问题,请让我知道修复程序。
预先感谢
解决方法
这是因为 Swing(我假设您使用的是 SWT_AWT)自 Java 9 以来具有连续的规模。
见:https://news.kynosarges.org/2019/03/24/swing-high-dpi-properties/
你可以在 RCP 中用这样的方式同步 Swing 和 SWT 在 ApplicationWorkbenchWindowAdvisor 类启动时的 preWindowOpen() 方法中 适用于 Windows 和 Linux(在 MacOSX 上不需要)。
int deviceZoom = DPIUtil.getDeviceZoom();
double zoom = deviceZoom / 100.0;
System.setProperty("sun.java2d.uiScale",Double.toString(zoom));
当然,您必须针对高 dpi 屏幕相应地检测和编辑它。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。