我正在开发Eclipse RCP应用程序并遇到一个奇怪的问题:
我使用final Shell dialog = new Shell(Display.getCurrent());
打开新的对话窗口,并在其中显示一个树(Tree tree_indicators = new Tree(dialog, SWT.None);
)。
当我在我的开发环境(Ubuntu 11.04 64位,GTK)上运行代码时,一切正常,树将正确显示。
当我将应用程序导出到Win32(32位)并在虚拟机中使用VirtualBox在Windows XP上运行时,对话框将正确打开,但不会显示树。
我也打电话给dialog.pack();
,为树保留空间,但不可见。我不知道问题是什么,我也没有收到任何错误信息或日志条目。
您对搜索解决方案有什么建议吗?
由于
答案 0 :(得分:0)
解决了它,是一个愚蠢的错误。 当我填充树时,我将重绘设置为false,并在填充后忘记将其设置为true:
// Turn off drawing to avoid flicker
t.setRedraw(false);
for (Indicator ind : indicators) {
TreeItem item = new TreeItem(t, SWT.None);
item.setText(ind.getNumber() + " " + ind.getName());
item.setData(ind);
// create sub elements
for (SubIndicator subInd : ind.getSubIndicators()) {
TreeItem child = new TreeItem(item, SWT.None);
child.setText(subInd.getNumberString() + " " + subInd.getName());
child.setData(subInd);
}
}
// this one I forgot
t.setRedraw(true);