我正在尝试展示动态toolTipText
。我的代码如下:
...
public TrayItem item;
...
public static void main(String args[]) {
....
....
TrayItem item = new TrayItem(tray, SWT.NONE);
item.setToolTipText("My string");
...
...
}
此代码已成功运行。但是如果我在另一个函数中设置新字符串,则没有变化,如下所示:
mainWindow.item.setToolTipText("My string -- " + getStatus().getMessage());
如何重新加载SWT的项目,重新设置?
答案 0 :(得分:1)
您必须从创建TrayItem的线程中调用setToolTipText()。
来自Eclipse API文档:
public void setToolTipText(String string)
Throws:
...
SWTException -
...
ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
将呼叫转发到用户界面线程的一种方法是使用Display.asyncExec( Runnable )
。例如:
Display.getDefault().asyncExec(new Runnable() {
public void run() {
mainWindow.item.setToolTipText( "My string -- " + getStatus().getMessage() );
}});