`

JFace查看器的TableViewer的图解

 
阅读更多

 



 

此图能够充分说明TableViewer的工作过程。

写上例子就太棒了。

 

例子:

public class TableViewerExample {
	public static void main(String[] args) {
		Display display = new Display();
		Shell shell = new Shell(display);
		shell.setBounds(100,100,400,200);
		shell.setLayout(new FillLayout());
		
		final TableViewer tv = new TableViewer(shell,SWT.NONE);
		Table t = tv.getTable();
		t.setHeaderVisible(true);
		t.setLinesVisible(true);
		String[] colName = {"First Name","Last Name","Age", "Num Children"};
		int[] colWidth = {80,100,35,100};
		for(int i=0; i<colName.length; i++) {
			TableColumn tc = new TableColumn(t,SWT.NONE);
			tc.setText(colName[i]);
			tc.setWidth(colWidth[i]);
		}
		tv.setLabelProvider(new PersonTableLabelProvider());
		tv.setContentProvider(new ArrayContentProvider());
		tv.setInput(Person.example());
		
		shell.open();
		while(!shell.isDisposed()) {
			if(!display.readAndDispatch())
				display.sleep();
		}
		display.dispose();
	}
}

class Person {
	public String 		firstName 		= "John";
	public String 		lastName		= "Doe";
	public int 		age				= 37;
	public Person[] 	childern		= new Person[0];
	
	public Person(String firstName, String lastName, int age) {
		this.firstName = firstName;
		this.lastName = lastName;
		this.age = age;
	}

	public Person(String firstName, String lastName, int age, Person[] childern) {
		this.firstName = firstName;
		this.lastName = lastName;
		this.age = age;
		this.childern = childern;
	}

	public static Person[] example() {
		return new Person[] {
				new Person("Dan", "Rubel",41,new Person[] {
						new Person("Beth", "Rubel",11),
						new Person("David", "Rubel",6),
				}),
				new Person("Eric", "Clayberg",42,new Person[] {
						new Person("Lauren", "ClayBery",41),
						new Person("Lee", "ClayBery",41),
				}),
				new Person("Mike", "Taylor",41),
		};
	}
	
	public String toString() {
		return firstName +" "+ lastName;
	}
}

class PersonTableLabelProvider extends LabelProvider implements ITableLabelProvider {
	public Image getColumnImage(Object element, int columnIndex) {
		return null;
	}

	public String getColumnText(Object element, int columnIndex) {
		Person person = (Person) element;
		switch(columnIndex) {
		case 0: return person.firstName;
		case 1: return person.lastName;
		case 2: return person.age+"";
		case 3: return person.childern.length+"";
		default: return "unknown"+columnIndex;
		}
	}
}

 

  • 大小: 36.5 KB
分享到:
评论

相关推荐

    Swt/Jface tableViewer入门教程一(显示tableViewer)

    在本文中,我们将深入探讨如何使用Swt/Jface库中的`tableViewer`组件来创建一个基本的表格视图。Swt(Standard Widget Toolkit)是Java中用于开发原生界面的应用程序开发工具包,而Jface是建立在Swt之上的抽象层,...

    swt/jface tableViewer开发简化

    5. **排序和过滤**: `tableViewer.setComparator`可以设置排序比较器,`tableViewer.addFilter`可以添加过滤器,根据特定条件隐藏或显示表格行。 6. **定制化功能**: `tableViewer`支持自定义列宽、单元格样式,...

    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 tableViewer入门教程三(加入在表格上直接编辑数据)

    在本文中,我们将深入探讨如何使用Swt/Jface库中的`TableViewer`组件来创建一个功能丰富的表格,并实现用户可以直接在表格上编辑数据的功能。Swt/Jface是Eclipse平台的一部分,提供了一套用于构建图形用户界面(GUI...

    JFace TableViewer的单元格逐个遍历的辅助类

    但是,用了这种方法CellEditors无法直接得到,因此,以前的给CellEditor加监听器从而进行单元格遍历的方法无法使用了。所以我改写了该类,从而支持ViewerColumn.setEditingSupport的方法。 如果有bug,请站内短信...

    Tableviewer实现

    `TableViewer`是Eclipse提供的一个高级表格视图组件,它是`JFace Data Binding`包的一部分。`TableViewer`基于SWT(Standard Widget Toolkit)的`Table`控件,但提供了更多的功能和灵活性,使得数据绑定和表格操作变...

    swt_jface_celleditor

    `swt_jface_celleditor` 标题和描述所涉及的知识点主要围绕如何在SWT/JFace中的TableViewer组件实现单元格的编辑功能,包括Text、Combo以及FileDialog这三种不同的编辑样式。 首先,SWT是Eclipse项目的一部分,它...

    jface 入门例子

    2. **Viewer Framework**:JFace的`TableViewer`和`TreeViewer`提供了强大的表格和树形视图管理,支持数据模型、过滤、排序等功能。例如,创建一个表格展示数据: ```java Table table = new Table(shell, SWT....

    org.eclipse.jface.snippets

    5. **表和树视图**:JFace的`TableViewer`和`TreeViewer`是用于展示数据的强大工具。它们支持各种操作,如排序、过滤、选择和编辑。在`org.eclipse.jface.snippets`中,你可以找到关于如何使用这些视图的实例代码。 ...

    SWT/Jface API 3.4

    在 JFace 中,TableViewer 和 TreeViewer 扩展了这些功能,添加了数据绑定和自定义列渲染等功能。 8. **Layout Managers**:SWT 提供了多种布局管理器,如 FillLayout、GridLayout、FormLayout 等,用于控制组件在...

    Set TableViewer Cell Focus

    在"源码"标签中提到的,如果你需要深入理解TableViewer的实现,查看源码是很有帮助的。Eclipse的源码可以在其GitHub仓库中找到,通过研究`org.eclipse.jface.viewers.TableViewer`类及其相关类,可以了解到更多的...

    全面介绍SWT-JFace

    4. **表和树的数据视图**:JFace的TableViewer和TreeViewer提供了对表格和树形结构数据的高级支持,包括排序、过滤和分页等功能。 5. **视图和编辑器**:在Eclipse IDE中,JFace用于创建可复用的视图和编辑器组件,...

    SWT和JFace开发实例

    - 视图和控制器:JFace引入了MVC(模型-视图-控制器)设计模式,分离了界面逻辑和业务逻辑,使代码更易于理解和维护。 - 表格和树视图:JFace提供了TableViewer和TreeViewer,它们提供了更高级的数据展示和操作...

    swt/jface api帮助文档

    JFace的TableViewer和TreeViewer提供了一种更抽象的方式来操作这些组件,包括数据绑定和排序。 7. **JFace服务**:包括Dialog、WorkbenchWindow、Action、SelectionService等,它们简化了窗口、动作和选择事件的...

    SWT+JFace 源代码

    1. **视图和编辑器**:JFace为构建Eclipse插件中的视图和编辑器提供了基础框架,使开发者能够专注于业务逻辑,而不是UI细节。 2. **数据绑定**:JFace提供了强大的数据绑定框架,使得UI元素和模型数据之间可以自动...

    JFace一些资料

    1. **模型-视图-控制器(MVC)模式**:JFace基于MVC设计模式,将数据模型、用户界面视图和控制逻辑分离,提高了代码的可维护性和可复用性。它通过DataBinding机制实现了模型和视图的自动同步。 2. **Viewer**:...

    org.eclipse.jface.rar

    1. **Viewers**:JFace提供了一种模型-视图-控制器(MVC)的实现,用于构建可定制的数据查看器,如TreeViewer和TableViewer。它们允许开发者以树形或表格形式展示数据,并提供了丰富的操作,如排序、过滤和编辑。 2...

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

    7. 视图(Views)和编辑器(Editors):在Eclipse RCP框架下,如何使用JFace创建可重用的视图和专业化的编辑器。 8. 事件处理:讲解如何注册和处理SWT和JFace事件,如SelectionEvent、FocusEvent等。 9. SWT和JFace...

    Setting focus cell in TableViewer

    3. 配置TableViewer的行为,比如编辑器、排序、过滤等。 4. 实现TableViewer的焦点处理,可能包括监听键盘事件,使用`TableViewer.setSelection()`或`TableViewer.focusCell()`方法来设置焦点单元格。 5. 在需要的...

Global site tag (gtag.js) - Google Analytics