0

我做了

class ViewContentProvider implements IStructuredContentProvider 

它提供了分层数据,我也做了适当的

class ViewLabelProvider extends LabelProvider implements ITableLabelProvider

然后我写了

public void createPartControl(Composite parent) {
        viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL
                | SWT.V_SCROLL);
        viewer.setContentProvider(new ViewContentProvider());
        viewer.setLabelProvider(new ViewLabelProvider());
        // Provide the input to the ContentProvider

        viewer.setInput(...

不幸的是,视图只显示最顶层节点的成员。它不显示最顶层节点本身。此外,不显示更多嵌套的子节点,即所有显示的节点都显示为无子节点。

为什么?如何使TableView看起来像随处绘制的带有可扩展节点的表格?

4

2 回答 2

0

如果要显示具有父子关系的节点,则应使用org.eclipse.jface.viewers.TreeViewer.

如果节点的信息必须像表格一样显示为多列,那么您可以使用org.eclipse.jface.viewers.TreeViewerColumn.

于 2014-01-09T07:14:37.620 回答
0

希望这可以帮助,

    Composite composite = new Composite(parent, SWT.NONE);
    composite.setLayout(new BorderLayout(0, 0));

    Group grp = new Group(composite, SWT.NONE);
    grp.setText(Messages.get().getValue("Some_text"));
    grp.setLayout(new FillLayout(SWT.HORIZONTAL));

    tree = new Tree(grp, SWT.BORDER);
    tree.setLinesVisible(true);

    TreeColumn trclmnNewColumn = new TreeColumn(tree, SWT.NONE);
    trclmnNewColumn.setWidth(100);
    trclmnNewColumn.setText(Messages.get().getValue("Type"));

    TreeColumn trclmnNewColumn_1 = new TreeColumn(tree, SWT.CENTER);
    trclmnNewColumn_1.setWidth(60);
    trclmnNewColumn_1.setText(Messages.get().getValue("Value"));

    TreeItem treeItem = new TreeItem(tree, SWT.NONE);
    treeItem.setText("Some Value");

    TreeItem trtm1 = new TreeItem(treeItem, SWT.NONE);
    trtm1.setText("Some Value");

    TreeItem trtm2 = new TreeItem(treeItem, SWT.NONE);
    trtm2.setText("Some Value");

    treeItem.setExpanded(true);
于 2014-01-10T12:45:16.827 回答