主界面中含有一个目录树(是将一个目录下所有的文件和子文件呈现成一个可以逐级展开的树),我将树的功能单独写成一个FileTree.class,这样能够让目录树处理更清晰些。
         第一次我的做法是:将建立TreeViewer和Tree写在FileTree.class中,在主界面中能够正确显示目录内容,但是刷新目录树总是没有反应。
public void showTree()
{
       msgTreeViewer = new TreeViewer(msgCatalogGroup, SWT. BORDER | SWT. FULL_SELECTION | SWT. MULTI);
       messageTree = msgTreeViewer.getTree();
       messageTree.setBounds(5, 15, 203, 420);
       msgTreeViewer.setContentProvider( new FileTreeContentProvider());//内容类
       msgTreeViewer.setLabelProvider( new FileTreeLabelProvider());//标签类
       msgTreeViewer.setInput("conf/message");//输入
}
   
    找了很多办法都无法解决,后来我将TreeViewer和Tree写在主界面类中,这样的话刷新目录树就能成功。
public void showTree(TreeViewer msgTreeViewer, final Tree messageTree) {
       this.msgTreeViewer = msgTreeViewer;
       this.messageTree = messageTree;
       msgTreeViewer.setContentProvider( new FileTreeContentProvider());
       msgTreeViewer.setLabelProvider( new FileTreeLabelProvider());
       msgTreeViewer.setInput("conf/message");
}
    刷新目录树的代码是:
TreeViewer msgTreeViewer = MainUI. getInstance().getMsgTreeViewer();
    Tree messageTree = MainUI.getInstance().getMessageTree();          FileTree.getInstance().showTree(msgTreeViewer,messageTree);