【Java开源代码栏目提醒】:网学会员鉴于大家对Java开源代码十分关注,论文会员在此为大家搜集整理了“TreeViewer4.java”一文,供大家参考学习
package cn.com.chengang.jface.treeviewer;
import java.util.List;
import org.eclipse.jface.action.MenuManager;
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;
import org.eclipse.ui.dialogs.ContainerCheckedTreeViewer;
public class TreeViewer4 {
public static void main(String[] args) {
new TreeViewer4().open();
}
public void open() {
final Display display = new Display();
final Shell shell = new Shell();
shell.setSize(300, 300);
// -----------界面核心代码-------------------
shell.setLayout(new FillLayout());
// 用ContainerCheckedTreeViewer完全替换TreeViewer
ContainerCheckedTreeViewer tv = new ContainerCheckedTreeViewer(shell, SWT.BORDER);
tv.setUseHashlookup(true); // 加快查找速度
Tree tree = tv.getTree();
tree.setHeaderVisible(true);
TreeColumn column = new TreeColumn(tree, SWT.LEFT);
column.setText("名称");
column.setWidth(150);
column = new TreeColumn(tree, SWT.LEFT);
column.setText("子结点数");
column.setWidth(80);
column = new TreeColumn(tree, SWT.LEFT);
column.setText("性别");
column.setWidth(40);
tv.setContentProvider(new TreeViewerContentProvider());
tv.setLabelProvider(new MyTableLableProvider());
// 和TableViewer一样,数据的入口也是setInput方法
List<CountryEntity> input = DataFactory.createTreeData();
tv.setInput(input);
MyActionGroup2 actionGroup = new MyActionGroup2(tv);// 改用另一个ActionGroup
actionGroup.fillContextMenu(new MenuManager());// 将按钮注入到菜单对象中
// -----------END------------------
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
}