Windows XP下的SWT树不可见

时间:2011-12-12 09:02:41

标签: java windows swt

我正在开发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();,为树保留空间,但不可见。我不知道问题是什么,我也没有收到任何错误信息或日志条目。

您对搜索解决方案有什么建议吗?

由于

1 个答案:

答案 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);