前边将过了TableViewer和TreeViewer再来看ListViewer就简单了,操作步骤一样,但更简单。这里只给出使用的代码
一、代码,这个实现不同于前边是分开实现(都是public 的类),这里给出的是内部类的实现方式。
import java.util.ArrayList;
import java.util.List;
import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.jface.viewers.ListViewer;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
public class TestListViewer {
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() {
}
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
}
}
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);
listViewer.setLabelProvider(new ListLabelProvider());
listViewer.setContentProvider(new ContentProvider());
listViewer.setInput(new Object());
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();
}
}
}
二、注意代码的注释部分,可以直接添加和移除。
分享到:
相关推荐
swt/Jface用到的最基本的jar包
SWT/JFACE API,是关于SWT/JFACE开发所用的API
SWT/Jface API 3.4 SWT/Jface API 3.4 SWT/Jface API 3.4 SWT/Jface API 3.4
Eclipse SWT/JFace SWT JFace 实例 Eclipse SWT/JFace 书中 全部实例
Eclipse SWT/JFace 核心应用光盘源码下载,解压后即可使用
Eclipse SWT/JFace核心应用
本文档为swt/jface的api中文帮助文档。
SWT/Jface 开发入门指南 介绍以下方面的内容: ? 设定 swt 以及 JFace 的开发环境 ? swt 的一些简单部件(widget)介绍 ? JFace 的一些入门性介绍 ? swt 和 JFace 的事件模式 ? 通过一些简单的例子说明如何利用 swt ...
SWT/JFace开发实例
Eclipse SWT/JFace 核心应用 带书签 Eclipse SWT/JFace
eclipse swt/jface核心应用 这本书的源代码
eclipse swt/jface核心应用源代码 带视频,找了好久,希望可以帮到大家,跟书匹配
SWT/JFace 3.5 版本的 API,HTML格式,方便开发人员查阅。
swt/jface in action 中英文 pdf格式 + 源码下载,包含书中的所有源码,有需要的朋友可以下载,为正在学习swt、jface的朋友提供一些好资源。
基于 Java 桌面程序开发的图形库...本书主要讲解了如何使用 SWT 和 JFace 进行应用程序的开发,通过本书系统而全面的 SWT/JFace 知识学习,将帮助读者快 速开发出完美、实用的 GUI 程序,轻松完成繁琐的界面、菜单编程.
王占全,苏玲 著; ISBN:7-121-05152-4 学习 SWT/JFace 的好书!
Eclipse SWT/JFace 开发实战精解+完美书签+光盘源码完整版. pdf带书签 ,代码完整的光盘,赚点积分。
NULL 博文链接:https://niub.iteye.com/blog/1806580
《Eclipse SWT/Jface核心应用》全面介绍了SWT、JFace和RCP的相关知识。全书共分5篇,第1篇介绍了SWT产生的背景以及SWT的一些基本概念和基础知识。第2篇介绍了SWT基本控件的使用,以及事件处理、布局等SWT基本知识的...