`
zfwdl2005
  • 浏览: 237555 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

mysource-jface

阅读更多

Swt/Jface treeViewer的使用

上边介绍了,tableviewer,这里介绍一下treeViewer,总的流程类似。
一、构造一个树形结构的数据出来,这里选择国家、城市、人来构造一个树形结构,代码如下:
1,定义一个接口

package model;

import java.util.List;

public interface Itree {
    
public String getName();
    
public void setName(String name);
    
public void setChildren(List Children);
    
public List getChildren();
}

2,国家

package model;

import java.util.ArrayList;
import java.util.List;

public class Country implements Itree{
    
private Long id;
    
private String name;
    
private List children = new ArrayList();
    
public Country(){
    }

    
public Country(String name){
        
this.name = name;
    }

    
public List getChildren() {
        
return children;
    }

    
public void setChildren(List children) {
        
this.children = children;
    }

    
public Long getId() {
        
return id;
    }

    
public void setId(Long id) {
        
this.id = id;
    }

    
public String getName() {
        
return name;
    }

    
public void setName(String name) {
        
this.name = name;
    }

    
}


3,城市

package model;

import java.util.ArrayList;
import java.util.List;

public class City implements Itree{
    
private Long id;
    
private String name;
    
private List children = new ArrayList();
    
public City(){
    }

    
public City(String name){
        
this.name = name;
    }

    
public List getChildren() {
        
return children;
    }

    
public void setChildren(List children) {
        
this.children = children;
    }

    
public Long getId() {
        
return id;
    }

    
public void setId(Long id) {
        
this.id = id;
    }

    
public String getName() {
        
return name;
    }

    
public void setName(String name) {
        
this.name = name;
    }

}


4,人

package model;

import java.util.ArrayList;
import java.util.List;

public class People implements Itree{
    
private Long id;
    
private String name;
    
public People(){
    }

    
public People(String name){
        
this.name = name;
    }

    
public List getChildren() {
        
return null;
    }

    
public void setChildren(List children) {
    }

    
public Long getId() {
        
return id;
    }

    
public void setId(Long id) {
        
this.id = id;
    }

    
public String getName() {
        
return name;
    }

    
public void setName(String name) {
        
this.name = name;
    }

}


5,把这些元素组织起来

package model;

import java.util.ArrayList;
import java.util.List;

public class Factory {
    @SuppressWarnings(
"unchecked")
    
public static List createTree(){
        
//生成国家
        Country cn = new Country("中国");
        Country us 
= new Country("美国");
        Country jp 
= new Country("日本");
        
//生成城市
        City beijing  = new City("北京");
        City shanghai 
= new City("上海");
        City newyork 
= new City("纽约");
        City la 
= new City("洛杉矶");
        City tokyo 
= new City("东京");
        City osaka 
= new City("大阪");
        
//北京人
        ArrayList list = new ArrayList();
        list.add(
new People("张三"));
        list.add(
new People("李四"));
        list.add(
new People("王五"));
        beijing.setChildren(list);
        
//上海人
        list = new ArrayList();
        list.add(
new People("翠花"));
        list.add(
new People("小红"));
        list.add(
new People("小崔"));
        shanghai.setChildren(list);
        
//纽约人
        list = new ArrayList();
        list.add(
new People("tom"));
        list.add(
new People("rose"));
        list.add(
new People("john"));
        newyork.setChildren(list);
        
//洛杉矶人
        list = new ArrayList();
        list.add(
new People("Sofia"));
        list.add(
new People("sarah"));
        list.add(
new People("Jennifer"));
        la.setChildren(list);
        
//东京人
        list = new ArrayList();
        list.add(
new People("渡边"));
        list.add(
new People("鬼冢"));
        list.add(
new People("山本"));
        tokyo.setChildren(list);
        
//大阪人
        list = new ArrayList();
        list.add(
new People("奈奈子"));
        list.add(
new People("菜菜子"));
        list.add(
new People("新垣结衣"));
        osaka.setChildren(list);
        
        
//关联城市与国家
        
//中国
        ArrayList citys = new ArrayList();
        citys.add(beijing);
        citys.add(shanghai);
        cn.setChildren(citys);
        
//美国
        citys = new ArrayList();
        citys.add(newyork);
        citys.add(la);
        us.setChildren(citys);
        
//日本
        citys = new ArrayList();
        citys.add(tokyo);
        citys.add(osaka);
        jp.setChildren(citys);
        
//国家列表
        ArrayList countrys = new ArrayList();
        countrys.add(cn);
        countrys.add(us);
        countrys.add(jp);
        
return countrys;
    }

}


二、定义内容器和标签器
1,内容器

import java.util.List;

import model.Itree;

import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.Viewer;

public class TreeContentProvider implements IStructuredContentProvider, ITreeContentProvider {
        
        
public Object[] getElements(Object inputElement) {
            
if (inputElement instanceof List){
                List input 
= (List)inputElement;
                
return input.toArray();
            }
<sp
  • src.zip (624.5 KB)
  • 下载次数: 4
分享到:
评论

相关推荐

    SWT-JFace-3.5-API.chm.7z

    这个"SWT-JFace-3.5-API.chm.7z"压缩包中包含的是SWT和JFace 3.5版本的API文档,对于理解和利用这两个库进行开发具有极高的参考价值。 首先,让我们深入了解SWT。SWT是Eclipse项目的一部分,它提供了一个直接与操作...

    Plugins-JFace-TableViewer.rar

    Plugins-JFace-TableViewer.rar Plugins-JFace-TableViewer.rar Plugins-JFace-TableViewer.rar Plugins-JFace-TableViewer.rar Plugins-JFace-TableViewer.rar

    SWT-JFace-3.5-API.chm

    《SWT-JFace 3.5 API 深度解析》 SWT(Standard Widget Toolkit)和JFace是Java编程中用于构建用户界面的两个重要库,尤其在开发Eclipse插件时,它们起着核心作用。SWT是Eclipse项目提供的一种与平台无关的图形用户...

    SWT-JFace-3.4-API

    在 "SWT-JFace-3.4-API" 这个资源中,我们很可能找到了关于这两个库的API文档。API 文档通常包含了类、接口、方法和构造函数的详细说明,是开发者学习和使用这些库的重要参考资料。3.4 版本代表了该API的一个特定...

    SWT-JFace-in-Action.doc

    SWT (Standard Widget Toolkit) 和 JFace 是两个与Java GUI开发相关的库,它们构成了Eclipse IDE的核心组件。在2004年的Java开发者年度大会上,Eclipse的SWT-JFace工具包荣获了最佳Java组件年度奖,这凸显了其在Java...

    SWT-JFace-in-Action(中文版).doc

    《SWT-JFace-in-Action(中文版)》这本书主要介绍了用于Java GUI开发的两个关键库——SWT和JFace。这两者都是Eclipse平台的核心组成部分,它们提供了与操作系统原生界面紧密集成的图形用户界面构建能力。 1. SWT...

    SWT_JFace.rar_ImageAnalyzer_SWT-jface_swt jface

    SWT (Standard Widget Toolkit) 和 JFace 是 Eclipse 开发框架中的两个重要组件,它们在创建图形用户界面(GUI)时发挥着关键作用。本项目"SWT_JFace.rar_ImageAnalyzer_SWT-jface_swt_jface"是围绕这些技术展开的一...

    11-JFace.rar_java jface

    Java JFace 技术是Eclipse框架中的一个重要组成部分,它为构建用户界面提供了一种模型-视图-控制器(MVC)的编程模式。JFace是Eclipse RCP(Rich Client Platform)的一部分,旨在简化GUI开发,使得开发者可以更加...

    swt-jface入门

    【SWT/JFace 简介】 SWT(Standard Widget Toolkit)是Java开发者用于创建图形用户界面(GUI)的一种库,它与底层操作系统紧密集成,提供了可移植的API。SWT的优势在于其高性能和与操作系统原生界面的接近,这使得用...

    SWT-JFace Code源码

    《SWT-JFace Code源码》是针对The Definitive Guide to SWT and JFace这本书的实践部分,提供了书中示例代码的详细实现。SWT(Standard Widget Toolkit)和JFace是Java开发图形用户界面(GUI)的重要库,它们都是...

    全面介绍SWT-JFace

    JFace是建立在SWT之上的更高层次的抽象框架,简化了GUI开发的复杂性,使得代码更简洁,结构更清晰。 SWT的设计目标是提供与本机系统更紧密的集成,因此它能够创建出与平台原生应用类似的外观和行为。这与Java Swing...

    Swt-JFace In Action Gui Design With Eclipse 3.0

    《Swt-JFace In Action: GUI Design with Eclipse 3.0》是一本专注于使用Eclipse 3.0框架进行图形用户界面(GUI)设计的专业书籍。本书深入探讨了SWT(Standard Widget Toolkit)和JFace这两个核心库在构建Eclipse...

    SWT-JFace-in-Action_中文版

    ### SWT与JFace:构建Java GUI的利器 #### 引言 SWT(Standard Widget Toolkit)与JFace作为Eclipse框架的重要组成部分,自2003年以来,便因其卓越的表现和创新性,连续两年获得Java开发者年度大会颁发的最佳Java...

    eclipse-jface-2.1.0.jar

    jar包,官方版本,自测可用

    org.eclipse.jface.rar

    "org.eclipse.jface.rar" 是一个压缩包文件,包含的是Eclipse IDE中JFace库的源代码。Eclipse JFace 是一个用于构建用户界面(UI)的高级Java框架,它是Eclipse平台的重要组成部分,主要设计目的是简化Swing和AWT等...

    SWT/JFace 3.5 API (CHM)

    SWT(Standard Widget Toolkit)和JFace是Eclipse开源平台中的两个重要组件,主要用于构建图形用户界面(GUI)。它们提供了一套丰富的控件和高级UI功能,使得Java开发者能够更轻松地创建美观、高效的桌面应用程序。...

    SWT/JFace专题 --- SWT/JFace概述

    SWT (Standard Widget Toolkit) 和 JFace 是两个在Java中用于构建图形用户界面(GUI)的重要库,尤其在开发Eclipse插件时被广泛应用。它们是开源项目,由Eclipse基金会维护,为开发者提供了丰富的控件和高级UI设计...

Global site tag (gtag.js) - Google Analytics