我有這個功能應該觸發一個通知窗口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