SWT的ListVierer的使用

package com.test;


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

import model.People;

import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.jface.viewers.ListViewer;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;




public class LBMShow {static class ListLabelProvider extends LabelProvider {
    public String getText(Object element) {
        Country country = (Country)element;
        return country.getName();
    }
    public Image getImage(Object element) {
        return null;
    }
}
static class ContentProvider implements IStructuredContentProvider {
    public Object[] getElements(Object inputElement) {
        if(inputElement instanceof List){
            List list = (List)inputElement;
            return list.toArray();
        }
        return new Object[0];
    }
    public void dispose() {
    }
    
    @Override
    public void inputChanged(Viewer arg0, Object arg1, Object arg2) {
        // TODO Auto-generated method stub
        
    }
}
static class Country {
    private String name;

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

    public void setName(String name) {
        this.name = name;
    }
    public static List getCountryList(){
        List list = new ArrayList();
        list.add(new Country("中国"));
        list.add(new Country("美国"));
        list.add(new Country("日本"));
        return list;
    }
    
}
private static org.eclipse.swt.widgets.List list;
/**
 * Launch the application
 * @param args
 */
public static void main(String[] args) {
    final Display display = Display.getDefault();
    final Shell shell = new Shell();
    shell.setSize(500, 375);
    shell.setText("SWT Application");
    //
    
    shell.open();

    final ListViewer listViewer = new ListViewer(shell, SWT.BORDER);
    list = listViewer.getList();
    list.setBounds(122, 63, 100, 100);
    
    listViewer.setContentProvider(new ContentProvider());
    listViewer.setLabelProvider(new ListLabelProvider());
    listViewer.setInput(Country.getCountryList());
    //可以直接添加
   // listViewer.add(new Country("英国"));                //可以添加一条
    shell.setLayout(new FillLayout());
    shell.layout();
    while (!shell.isDisposed()) {
        if (!display.readAndDispatch())
            display.sleep();
    }
}}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
作者:talent_marquis<甜菜侯爵><br>联系方式:<br>talent_marquis@163.com<br>marquis.hou@dextrys.com<br><br>简单说明:<br>这个小工具对于软件开发用户,特别是Bug fix类型的超小项目会很有用。对于普通用户用处不大。不过由于是SWT+JFace实现的桌面程序,想研究Java桌面程序应用的朋友也可以下载看看,其一些特性及设计思路还是比较有用的。<br><br>详细资料及截图请参考压缩包中doc/how to run.doc文档<br><br>新特性:<br>支持拽入:可以将源/目标目录以及配置文件拽入相对应窗口<br>支持双击:在窗口双击可以打开相应功能<br>新TreeViewer窗口:更加清晰地显示目标目录的文件结构<br>窗口大小可调:每个窗口的大小都可以随意调整<br>New features:<br>Support drop-in: You can drop source/target directory and configure file into the corresponding window directly. <br>Support Double-click: When double click in window, the corresponding function will be invoked. <br>New Tree viewer window: It can be show the structure of target directory more clearly. <br>Adjustable window: All bounds of window are adjustable now.<br> <br>LOG:<br><br>--------------------------------------------------------------------------------<br><br>2008-04-02<br>1. 添加ImageUitl类,可以注册读取系统中的图标资源(注:该方法尚未完善,需进一步调整)<br>2. 界面调整<br> ·使TreeViewer能够显示文件/文件夹的图标(注:文件夹的打开/关闭状态还未进行区别)<br> ·界面布局细微调整<br> <br>2008-04-01<br>1. 实现双击功能<br> ·Source directory双击执行设置源目录操作<br> ·Target directory空白区域操作执行设置目标目录操作<br> ·Confige file edit text双击执行读取配置文件操作<br>2. 界面调整:<br> ·加入SashForm,使窗口内子窗口可以自由调整大小<br> ·Target Directory调整为TreeViewer,使其表现为树形结构,并保持原有的拽入功能不变<br> ·Source Directory调整为ListViewer,并保持原有的拽入功能不变<br> ·执行Make Source Files操作后,TreeViewing展开树形结构,显示target目录的当前文件结构<br>3. 版本升级为1.5<br> <br>2008-03-31<br>1. 实现文件拖拽功能:<br> ·可以直接将文件、文件夹拖拽入指定窗口<br> <br>2008-03-30<br>1. 实现命令行形式的MakeSourceFilesToolkit功能<br>2. 重构MakeSourceFilesToolkitShell:<br> ·方法重构,使其更为通用<br> ·弹出窗口,包括MessageBox,FolderDialog,FileDialog由调用时新建改为类似有属性直接使用,以节省资源<br>3. 设定版本为1.0<br> <br>2008-03-29<br>1. 实现MakeSourceFilesToolkit基本功能:<br> ·设置源目录<br> ·设置目标目录<br> ·读取配置文件<br> ·在目标目录自动生成深目录结构,并拷贝源目录中匹配文件至指定目录结构中<br>2. 实现MakeSourceFilesToolkit的桌面版本<br><br>--------------------------------------------------------------------------------<br><br> <br>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值