如何解决此错误:“类NSWindow中的方法userSpaceScaleFactor在10.7及更高版本中已弃用”

时间:2016-07-03 09:10:57

标签: java eclipse swt

我正在尝试学习SWT,所以我正在尝试创建一个简单的hello world示例

package test;



import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;

public class nbstest {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Display d = new Display();
        Shell s = new Shell(d);
        Text t = new Text(s, SWT.CENTER);
        t.setText("Hello World :) ");
        t.pack();

        s.pack();
        s.open();
        while (!s.isDisposed()) {
            if (!d.readAndDispatch())
                d.sleep();
            d.dispose();
        }
    }

}

但是我得到了以下警告: 类NSWindow中的方法userSpaceScaleFactor在10.7及更高版本中弃用,

warning

我的helloWorld窗口没有显示。 那么我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

我无法在OS X 10.11.5上使用SWT 4.5或4.6重现usrSpaceScaleFactor消息。

您的readAndDispatch循环不正确,这会阻止shell显示。 d.dispose必须在循环结束后:

while (!s.isDisposed()) {
   if (!d.readAndDispatch())
     d.sleep();
}

d.dispose();

答案 1 :(得分:0)

警告消息似乎是由此引起的:https://bugs.eclipse.org/bugs/show_bug.cgi?id=386252

根据错误报告,问题将在SWT版本4.6中解决。