Java 使用TreeColumn时未显示树

Java 使用TreeColumn时未显示树,java,swt,Java,Swt,显示包含列定义的树时遇到问题: private Composite composite; private Composite treeCompositeNdal; private Tree treeNdalEditor; private TreeColumn treeNameColumn ; private TreeColumn treeValueColumn ; [...] treeCompositeNdal = new Composite(composite, SWT.BOTTOM); t

显示包含列定义的
树时遇到问题:

private Composite composite;
private Composite treeCompositeNdal;
private Tree treeNdalEditor;
private TreeColumn treeNameColumn ;
private TreeColumn treeValueColumn ;

[...]
treeCompositeNdal = new Composite(composite, SWT.BOTTOM);
treeCompositeNdal.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true));
treeCompositeNdal.setLayout(createNoMarginLayout(1, true));
treeCompositeNdal.setVisible(false);

treeNdalEditor = new Tree (treeCompositeNdal, SWT.BOTTOM|SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);

treeNdalEditor.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));
treeNdalEditor.setRedraw(true);
treeNdalEditor.setVisible(true);

treeNameColumn = new TreeColumn(treeNdalEditor, 0);
treeValueColumn = new TreeColumn(treeNdalEditor, 0);
treeNameColumn.setText("Name");
treeValueColumn.setText("Value");

如果我注释掉
treeNameColumn
treeValueColumn
行,则
显示良好。我做错了什么?

在填写内容后,尝试调用两个列。这将迫使
treecocolumn
s根据其内容调整大小。

添加数据后是否在两列上调用了
.pack()
?顺便说一句:
SWT.BOTTOM
不是
Tree
的有效样式,请对
treecocolumn
s使用
SWT.NONE
而不是
0
。谢谢你,两列上的.pack()解决了这个问题。我如何投票表决你的答案作为原始问题的解决方案?