public class TestTableViewer {
private static Table table;
/** *//**
* 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");
//注意这里,SWT.NULTI代表可以选择多行,SWT.FULL_SELECTION代表可以整行选择,SWT.BORDER边框,SWT.V_SCROLL ,SWT.H_SCROLL滚动条
final TableViewer tableViewer = new TableViewer(shell, SWT.MULTI | SWT.FULL_SELECTION | SWT.BORDER|SWT.V_SCROLL|SWT.H_SCROLL);
table = tableViewer.getTable();
table.setLinesVisible(true);
table.setHeaderVisible(true);
table.setBounds(97, 79, 373, 154);
final TableColumn newColumnTableColumn = new TableColumn(table, SWT.NONE);
newColumnTableColumn.setWidth(39);
newColumnTableColumn.setText("ID");
final TableColumn newColumnTableColumn_1 = new TableColumn(table, SWT.NONE);
newColumnTableColumn_1.setWidth(85);
newColumnTableColumn_1.setText("姓名");
final TableColumn newColumnTableColumn_2 = new TableColumn(table, SWT.NONE);
newColumnTableColumn_2.setWidth(41);
newColumnTableColumn_2.setText("性别");
final TableColumn newColumnTableColumn_3 = new TableColumn(table, SWT.NONE);
newColumnTableColumn_3.setWidth(43);
newColumnTableColumn_3.setText("年龄");
final TableColumn newColumnTableColumn_4 = new TableColumn(table, SWT.NONE);
newColumnTableColumn_4.setWidth(126);
newColumnTableColumn_4.setText("创建日期");
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
}
}2,加入布局
显示的效果不好,我们要加入布局,让view填充整个画面在shell.open()后加上
ok,效果达到
3,为TableViewer加上数据,光突突的样子不好看。这里是demo所以不再从数据库里边取数据了。自己构造一个List用来做数据。实际使用中也是这么使用,不过不同的是这里是随意构造的list,而显示实际使用中是从数据库取出数据构造list.
(1)构造一个people类,同时给People类提供一个构造假数据的方法getPeople()
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class People{
private Long id;
private String name;
private String sex;
private Integer age;
private Date createDate;
public People(Long id,String name,String sex,Integer age,Date createDate){
this.id = id;
this.name = name;
this.sex = sex;
this.age = age;
this.createDate = createDate;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Date getCreateDate() {
return createDate;
}
public void setCreateDate(Date createDate) {
this.createDate = createDate;
}
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;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public static List getPeople(){
List list = new ArrayList();
int n = 30;
for(int i=1;i<n;i++){
Long id = new Long(i);
String name = "张"+i;
String sex = "男";
if((i%2) == 0){
sex = "女";
}
Integer age;
if(i<10){
age = new Integer(i*10);
}else if(i>10 && i<100){
age = new Integer(i);
}else if(i>100 && i<1000){
age = new Integer(i/10);
}else{
age = new Integer(22);
}
Date createDate = new Date();
People people = new People(id,name,sex,age,createDate);
list.add(people);
}
return list;
}
}
(2)给tableViewer提供内容器(IStructuredContentPorvider)和标签器(ITableLabelProvider)
如果想一个tableviewer显示数据,那必须给它提供内容器和标签器,内容器的作用是从List(也可以是其他的集合类)中提取出一个对象(例如People对应着表格的一行,数据库的一条记录),标签器的作用是从一个对象中提取出一个字段(例如年龄,对应着表格中的一个单元格,数据库中某一列的一个值)下
分享到:
相关推荐
"mysource-jface"是一个与Java编程相关的项目,主要涉及JFace库的使用。JFace是Eclipse框架的一部分,它提供了一组高级图形用户界面(GUI)组件和工具,简化了SWT(Standard Widget Toolkit)的使用。这篇博客文章...
标题 "gr-mysource.tar.gz" 提供的信息表明这是一个压缩文件,使用了 tar 和 gzip 工具进行打包。在 Linux 和 Unix-like 操作系统中,`.tar` 扩展名通常表示一个包含多个文件和目录的归档文件,而 `.gz` 表示这个...
本文主要讨论了单片机中的中断系统,重点是AT89C51微控制器的中断机制。中断系统是单片机处理外部事件的重要方式,它允许CPU在执行主程序的同时,能够响应外部设备或内部模块的需求,提供及时的服务。...
对于初学者而言,"mysource_code.rar"中的源代码是一份宝贵的教育资源。通过阅读和理解代码,可以深入学习Delphi编程技巧、数据库操作以及UI设计等方面的知识,提升自身的编程能力。 总结,这个工资管理系统不仅...
NDIS的PASSTHRU层的驱动程序,MySource应用层的程序,负责向驱动程序发指令,本来是想做防火墙的,可后来做到可过滤IP地址后没有再做了....zip
【单片机基础知识】 单片机,又称为单片微型计算机,是电子计算机技术发展的一个重要分支。它是由微处理器、存储器、输入/输出(I/O)接口和中断系统等核心组件集成在单一芯片上,形成一个具有完整功能的微型计算机...
标题 "mySource" 提供的信息比较有限,但我们可以推测它可能是一个与编程或者软件开发相关的项目,因为通常在IT领域,"Source"常常指的是源代码或源文件。结合描述中的"哈哈〜",这可能是一位开发者对他的项目感到...
【mysource: 使用域名实际网站访问的测试个人网站原始码】 在互联网上建立个人网站是展示自我、分享知识或提供服务的有效方式。"mysource"项目是一个开源的个人网站解决方案,它允许用户通过自己的域名来访问网站,...
【标题】 "MySource: 存储Web开发代码的仓库" 这个名为"MySource"的存储库专注于收集和组织Web开发相关的代码片段。它是一个宝贵的资源,涵盖了HTML、CSS、JavaScript这三个核心的前端技术,同时也包括了一些开源库...
【AT89C51单片机结构和原理】 AT89C51是一款广泛应用的8位微处理器,属于AT89系列。本章节详细介绍了该单片机的内部结构和工作原理,对于理解单片机的基础知识至关重要。 2.1 AT89C51单片机的结构 ...
在本篇内容中,主要讲解了单片机AT89C51的指令系统和寻址方式,这些是嵌入式系统开发中的基础知识。首先,我们来看AT89C51的指令系统。 AT89C51单片机拥有111条指令,包括单字节指令49条、双字节指令45条和三字节...
本压缩包“An open source C++ game engine.zip”内包含了一个名为“mysource”的源代码目录,这可能是游戏引擎的核心代码库。 开源游戏引擎的关键特性通常包括: 1. **跨平台支持**:由于C++的可移植性,这种开源...
mySource.TraceEvent(TraceEventType.Error, 1, "An error occurred."); ``` 四、优势与应用场景 MFS的优势在于其灵活性和可扩展性,开发者可以方便地定制日志格式,选择合适的输出目标,以及根据需求调整日志级别...
mysource可能是一个单一的.cs文件,也可能是一个包含多个子文件夹和文件的结构,代表了项目中的不同模块或功能。 如果mySource是一个文件夹,它可能包含以下结构: 1. Program.cs:主入口点,程序的启动位置。 2. ...
在"3D C++ Game Engine - yet another open source game engine.zip"这个压缩包中,我们很可能找到了一个用于构建3D游戏的C++源码库,名为"mysource"。 1. 渲染引擎:在3D游戏中,渲染引擎是至关重要的部分,它负责...
本文将深入探讨基于MFC(Microsoft Foundation Classes)和C++开发的学生成绩管理系统,以及如何配置数据源“MySource”。 MFC是微软提供的一个C++类库,用于构建Windows应用程序,它简化了用户界面设计和系统交互...
mySource->get_FrameDescription(&myDescription); ``` 接下来,通过`get_DepthFrameSource`方法获取深度帧数据源,并通过`get_FrameDescription`方法获取帧描述信息,包括帧的高度和宽度等。 ```cpp double ...