测试SWT/JFACE tableViewer对象的使用
效果图:
/**
* 测试TableViewer
* @description {description}
* @className TableViewTest
* @author share
* @date 2012-5-7 上午11:36:55
*/
public class TableViewerTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new TableViewerTest().creatTable();
}
private static Display display = new Display();
private static Shell shell = new Shell(display);
//tableViewer数据源
private List<Person> list = new ArrayList<Person>();
private Table table;
/**
* 创建一个TableViewer对象-->设置数据源/设置内容提供者/设置Table列标签内容提供者
* -->为TableViewer对象的Table设置没一个列名
* 创建一个线程去读取Person对象提供给Table
* 创建一个模拟线程产生Person对象并添加到数据源中
*/
public void creatTable(){
shell.setText("Test TableViewer");
TableColumnLayout tableColumnLayout = new TableColumnLayout();
shell.setLayout(tableColumnLayout);
TableViewer tv = new TableViewer(shell,SWT.FULL_SELECTION);
tv.setContentProvider(new TvContentProvider());
tv.setInput(list);
table = tv.getTable();
table.setHeaderVisible(true);//设置表格头部是否可见
table.setLinesVisible(true);//设置线条是否可见
//设置Table的列
TableColumn tcId = new TableColumn(table, SWT.NONE);
tableColumnLayout.setColumnData(tcId, new ColumnPixelData(150,true,true));
tcId.setText("id");
TableColumn tcName = new TableColumn(table, SWT.NONE);
tableColumnLayout.setColumnData(tcName, new ColumnPixelData(150,true,true));
tcName.setText("名字");
TableColumn tcSex = new TableColumn(table, SWT.NONE);
tableColumnLayout.setColumnData(tcSex, new ColumnPixelData(150,true,true));
tcSex.setText("性别");
/**
* 给Table设置数据,模拟1秒添加一条
*/
new Thread(new Runnable() {
final Display display = Display.getDefault();
@Override
public void run() {
while(true){
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
display.asyncExec(new Runnable() {
public void run() {
if(!list.isEmpty()){
Person p = list.remove(0);
//设置表格数据
TableItem item = new TableItem(table, SWT.None);
item.setText(p.toArray());
}
}
});
}
}
}).start();
/**
* 模拟生产数据
*/
new Thread(new Runnable() {
@Override
public void run() {
while(true){
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
Person p = new Person();
int id = new Random().nextInt(1000);
p.setId(id+"");
p.setName("我是"+id);
p.setSex(id%2==0?"男":"女");
list.add(p);
}
}
}).start();
shell.pack();
shell.open();
while(!shell.isDisposed()){
if(!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
/***
* TableViewer内容提供者/就是为TableViewer提供数据集合
* @description {description}
* @className TvContentProvider
* @author Share
* @date 2012-5-7 上午11:33:17
*/
class TvContentProvider implements IStructuredContentProvider{
@Override
public void dispose() {
// TODO Auto-generated method stub
}
@Override
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
}
@Override
public Object[] getElements(Object inputElement) {
// TODO Auto-generated method stub
if(inputElement instanceof List){
return ((List) inputElement).toArray();
}
return new Object[0];
}
}
/**
* Person entity对象
* @description {description}
* @className Person
* @author share
* @date 2012-5-7 上午11:36:29
*/
class Person {
private String id;
private String name;
private String sex;
public String getId() {
return id;
}
public void setId(String 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 String[] toArray() {
// TODO Auto-generated method stub
return new String[]{this.id,this.name,this.sex};
}
}
}
- 大小: 11.3 KB
分享到:
相关推荐
JFace 建立在SWT之上,提供了一层抽象,简化了GUI开发的复杂性。JFace的目标是通过提供数据绑定、视图模型、对话框和服务等高级构造,来提高开发者的生产力。例如,它使用模型-视图-控制器(MVC)架构,将数据管理与...
在本文中,我们将深入探讨如何使用Swt/Jface库中的`tableViewer`组件来创建一个基本的表格视图。Swt(Standard Widget Toolkit)是Java中用于开发原生界面的应用程序开发工具包,而Jface是建立在Swt之上的抽象层,...
本篇文章将聚焦于SWT/JFace中的tableViewer组件的开发与简化。 首先,`tableViewer`是JFace库中用于展示表格数据的核心组件。它为开发者提供了一种方便的方式来显示和操作数据,同时处理了诸如排序、过滤等复杂功能...
SWT 是一个直接与操作系统进行交互的底层库,提供了丰富的控件和组件,而 JFace 建立在 SWT 之上,提供了一层抽象,简化了 GUI 的设计和实现,使其更易于管理和维护。 在 SWT/Jface API 3.4 版本中,我们关注以下几...
在本文中,我们将深入探讨如何使用Swt/Jface库中的`TableViewer`组件来创建一个功能丰富的表格,并实现用户可以直接在表格上编辑数据的功能。Swt/Jface是Eclipse平台的一部分,提供了一套用于构建图形用户界面(GUI...
5. 表格和树的模型(Table and Tree Models):SWT和JFace提供了处理表格和树数据的类,如`TableViewer`和`TreeViewer`,它们支持数据的过滤、排序和分页。 6. 事件处理(Event Handling):SWT和JFace使用监听器...
- 探索JFace:了解JFace如何简化SWT的使用,如利用TreeViewer和TableViewer展示数据。 - 练习MVC:通过创建一个简单的数据编辑视图,实践JFace的MVC模式。 - 扩展Eclipse:学习如何创建Eclipse插件,将SWT/JFace...
SWT (Standard Widget Toolkit) 和 JFace 是两个用于构建Java图形用户界面(GUI)的开源库,它们在Java开发领域中被广泛使用,特别是在Eclipse IDE及其插件开发中。SWT是底层的UI库,提供了与操作系统原生控件直接...
在学习和使用SWT和JFace API时,查阅这份中文帮助文档将非常有益。它会详细解释每个类、接口和方法的功能,以及如何在实际项目中应用它们。通过深入理解和实践,你可以创建出高效、美观且易于维护的Java桌面应用程序...
其次,JFace是在SWT基础上构建的一层抽象,它简化了SWT的使用,提供了一种面向对象的API,使得开发人员可以更加专注于业务逻辑,而不是底层的GUI细节。JFace包括数据绑定、视图管理、对话框和服务等组件,它将许多...
标题 "SWT/JFace分页" 指的是在Java编程中使用SWT(Standard Widget Toolkit)和JFace库实现用户界面时的分页功能。SWT是Eclipse项目提供的一种用于创建本地化图形用户界面(GUI)的开源库,而JFace是在SWT基础上...
JFace则是在SWT之上的一个抽象层,它的目标是简化GUI开发,减少代码量,并提供数据绑定和事件处理机制。JFace将SWT的底层细节隐藏起来,让开发者可以更加专注于应用逻辑而不是UI实现。例如,JFace的Dialogs、Views和...
7. 表格和树:TableViewer和TreeViewer的使用,以及如何自定义列、行操作和数据提供者。 8. 表单构建:JFace表单构建器简化了复杂表单的创建,如FormToolkit和FormLayout的运用。 通过"SWT-JFace-3.5-API.chm"文件...
2. 控件的使用:如何创建和配置SWT控件,如Button、Text、Shell等,以及JFace的高级控件,如TableViewer和TreeViewer。 3. 事件处理:如何监听和响应用户的操作,如点击按钮、选择列表项等。 4. 布局管理:如何使用...
- **JFace的引入**:JFace是在SWT之上的一层抽象,它简化了GUI编程,减少了代码量,提高了可读性和可维护性。 - **数据绑定**:JFace的DataBinding机制使数据与UI控件自动保持同步,降低了手动同步的复杂性。 - *...
JFace是建立在SWT之上的高级抽象层,简化了GUI开发的复杂性。它提供了模型-视图-控制器(MVC)设计模式的实现,以及对话框、表视图、树视图等高级控件。JFace的目标是提高代码的可读性和可维护性,减少重复代码。 ...
2. **JFace**:JFace是建立在SWT之上的抽象层,简化了GUI开发,通过提供数据绑定、视图模型和控制器模式来减少代码量。它还引入了一些高级组件,如表视图、树视图和对话框。 3. **布局管理**:Eclipse SWT中,布局...
2. **JFace概述**:JFace是建立在SWT之上的一个高级UI框架,它简化了SWT组件的使用,提供了模型-视图-控制器(MVC)架构,使得代码更加模块化,易于维护。JFace提供了对话框、表视图、树视图、数据绑定等功能,为...
**SWT (Standard Widget Toolkit) 和 JFace API** 是Java编程中用于构建图形用户界面(GUI)的重要工具包,尤其在开发Eclipse插件或基于Eclipse RCP(Rich Client Platform)的应用程序时非常常见。SWT是面向底层...
例如,JFace的TreeViewer和TableViewer可以帮助开发者轻松创建和管理树形或表格视图。 **API** `SWT & JFace_API_(最新最全).chm` 文件是一个包含SWT和JFace最新、最全面的API文档的离线版。CHM(Compiled Help ...