SWT:找不到方法 Monitor#getZoom()

问题描述

org.eclipse.swt.widgets.Monitor 类应该有一个名为 getZoom 的实例方法,它应该返回在特定监视器上设置的缩放系数。它记录在此处(单击“监视器”后): https://help.eclipse.org/2021-03/index.jsp?topic=/org.eclipse.platform.doc.isv/reference/api/org/eclipse/swt/widgets/package-summary.html

但是,在尝试编译以下代码时...

Monitor monitor = display.getDefault().getPrimaryMonitor();
int zoom = monitor.getZoom();

...,我收到一条错误消息:

java: cannot find symbol
  symbol:   method getZoom()
  location: variable monitor of type org.eclipse.swt.widgets.Monitor

自 SWT 版本 3.107 起就记录了该方法存在,而我使用的是版本 4.6.1。 Monitor 类的所有其他方法都按预期工作。

在这里遗漏了什么?

(如果需要更多信息来回答这个问题,请随时提问。)

解决方法

SWT 版本与 Eclipse 版本不匹配。 4.6.1 是您的 Eclipse 版本 (Eclipse Neon),其中包含太旧的 SWT 版本 3.105.1。

SWT 3.107 最初包含在 Eclipse 4.8 (Eclipse Photon) 中。我认为以后的版本扩展了支持缩放的平台,因此您应该尝试移动到当前的 Eclipse 2021-03(2021-06 很快)