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 に答える