我正在尝试学习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及更高版本中弃用,
我的helloWorld窗口没有显示。 那么我该如何解决这个问题?
答案 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中解决。