我有这个功能应该触发一个通知窗口Eclipse RCP的 - Java的
public void PushNotif(String notifTitile,String notifText,int notifType)
{
Random r = new Random();
int max = NotificationType.values().length;
final String Title = notifTitile==null?"no Title":notifTitile;
final String Text = notifText==null?"no Text":notifText;
final int Type = notifType==0?r.nextInt(max):notifType;
new Thread(new Runnable()
{
public void run()
{
while (true)
{
try
{
Thread.sleep(1000);
}
catch (Exception e)
{
e.printStackTrace();
}
Display.getDefault().syncExec(new Runnable()
{
public void run()
{
//IT'S NEVER ENTER HERE!!!
NotifierDialog.notify(Title, Text, NotificationType.values()[Type]);
while (!NotifierDialog._shell.isDisposed())
{
if (!Display.getDefault().readAndDispatch()) Display.getDefault().sleep();
}
Display.getDefault().dispose();
}
});
}
}
}).start();
}
我的问题显示线程是,它从未进入run()
功能。
它停留在Display.getDefault().syncExec(new Runnable()...
,这一切。 我知道Display.syncExec
应该等到它可以运行,但我不知道如何使它准备好...
帮助?
这是SWT吗? Eclipse RCP? – 2013-05-14 10:56:59
@JoachimSauer我使用Eclipse与SWT。我怎么知道我的SWT版本是什么?我知道这个'org.eclipse.swt.widgets.Display' – Ofear 2013-05-14 11:07:54
你指的是哪个run()? – m0skit0 2013-05-14 11:17:27