用swt的tableTree,eclipse说不推荐改用jface的treeView,觉得它跟swt的差别好大,我这新手有点不习惯...
是不是得用TreeViewerColumn才能构建出表格树,找不到它比较详细的例子

解决方案 »

  1.   

    楼主您好,我现在也在研究表格树的写法,用tableTree已经实现了,但是Eclipse不推荐使用。想知道您是如何使用TreeViewerColumn实现的,.感谢。我使用 TreeColumn也实现了一个,但是效果有问题,不能选中整行,鼠标滑过还出现了淡蓝色区域,代码如下:
    import java.io.File;
    import org.eclipse.jface.viewers.TreeViewer;
    import org.eclipse.swt.SWT;
    import org.eclipse.swt.layout.FillLayout;
    import org.eclipse.swt.widgets.Display;
    import org.eclipse.swt.widgets.Shell;
    import org.eclipse.swt.widgets.Tree;
    import org.eclipse.swt.widgets.TreeColumn;public class TreeColumnTest { public void run() {
    final Display display = new Display();
    final Shell shell = new Shell(display);
    shell.setLayout(new FillLayout());
    final TreeViewer viewer = new TreeViewer(shell, SWT.BORDER
    | SWT.FULL_SELECTION);
    Tree tree = viewer.getTree();
    tree.setLinesVisible(true);
    tree.setHeaderVisible(true);
    TreeColumn column = new TreeColumn(viewer.getTree(), SWT.NONE);
    column.setText("Name");
    column.setWidth(200);
    column = new TreeColumn(viewer.getTree(), SWT.LEFT);
    column.setText("Size");
    column.setWidth(100);
    column = new TreeColumn(viewer.getTree(), SWT.LEFT);
    column.setText("Hidden");
    column.setWidth(100);
    viewer.setContentProvider(new MyTreeContenetProvider());
    viewer.setLabelProvider(new MyTableLableProvider());
    viewer.setInput(new File("c:/")); for (int i = 0, n = tree.getColumnCount(); i < n; i++) {
    tree.getColumn(i).pack();
    } shell.open();
    while (!shell.isDisposed()) {
    if (!display.readAndDispatch())
    display.sleep();
    }
    display.dispose();
    } public static void main(String[] args) {
    new TreeColumnTest().run();
    }
    }