/**
* This util calss provides some general RCP methods
*
* @author Louis
*/
public class RcpUtils {
/**
* Add sorter to the specified column, compares using Collator
*/
public static void addSorter(final Table table, final TableColumn column) {
column.addListener(SWT.Selection, new Listener() {
boolean isAscend = true;
Collator comparator = Collator.getInstance(Locale.getDefault());
public void handleEvent(Event e) {
int columnIndex = getColumnIndex(table, column);
TableItem[] items = table.getItems();
for (int i = 1; i < items.length; i++) {
String value2 = items[i].getText(columnIndex);
for (int j = 0; j < i; j++) {
String value1 = items[j].getText(columnIndex);
boolean isLessThan = comparator.compare(value2, value1) < 0;
if ((isAscend && isLessThan) || (!isAscend && !isLessThan)) {
String[] values = getTableItemText(table, items[i]);
Object obj = items[i].getData();
items[i].dispose();
TableItem item = new TableItem(table, SWT.NONE, j);
item.setText(values);
item.setData(obj);
items = table.getItems();
break;
}
}
}
table.setSortColumn(column);
table.setSortDirection((isAscend ? SWT.UP : SWT.DOWN));
isAscend = !isAscend;
}
});
}
public static int getColumnIndex(Table table, TableColumn column) {
TableColumn[] columns = table.getColumns();
for (int i = 0; i < columns.length; i++) {
if (columns[i].equals(column))
return i;
}
return -1;
}
public static String[] getTableItemText(Table table, TableItem item) {
int count = table.getColumnCount();
String[] strs = new String[count];
for (int i = 0; i < count; i++) {
strs[i] = item.getText(i);
}
return strs;
}
}
//默认使用字符串排序, 使用方法:
//RcpUtils.addSorter(table, column1);
//RcpUtils.addSorter(table, column2);
分享到:
相关推荐
Table控件可以用来显示数据库中的表格数据,支持排序、筛选等功能;而Chart控件则可以渲染从数据库获取的散点数据。 6. **数据绑定** 要在Table和Chart之间同步数据,我们需要在Java代码中处理逻辑。当用户从...
在这个场景中,“swt table 自己造个轮子”指的是使用SWT(Standard Widget Toolkit)库来创建一个自定义的表格组件。SWT是Eclipse项目的一部分,它提供了一套原生的GUI组件,用于Java应用程序,提供了与操作系统更...
本文将深入探讨SWT中的Table组件的扩展及其应用,同时参考了博客文章“swt table扩展”。 在SWT中,Table是一个非常重要的组件,用于展示多行多列的数据。它提供了类似电子表格的功能,包括排序、选择、编辑等。在...
在SWT中,Table控件是一种用于显示列表数据的组件,它可以以列的形式展示数据,并支持排序、选择等功能。下面将详细介绍如何利用SWT的Layout布局机制来设计和优化Table组件的显示效果。 ### Layout布局机制 SWT...
- **Control**: 所有SWT组件的基类,提供了基本的属性和方法。 - **Display**: 代表整个应用程序的显示区域,包含一个或多个Shell。 - **Label**: 用于显示文本或图像。 - **List**和**Tree**: 用于展示数据列表...
SWT组件** SWT包含了一系列基本的UI组件,如按钮、文本框、列表、树、表等,这些组件都可以通过编程进行高度自定义。例如,`Composite`类可以用来创建自定义布局,而`Shell`类则代表应用程序的顶级窗口。开发者...
- Table:SWT 提供的 `Table` 类可以用来创建表格,支持多列、排序、选择等特性。JFace 的 `TableViewer` 可以进一步增强表格功能,如数据绑定和行操作。 - Tree:`Tree` 组件用于展示层次化的数据结构,`...
7. **Table**:表格控件,可以展示多列数据,支持排序和选择。 8. **MenuItem** 和 **Menu**:菜单项和菜单,用于构建应用程序的菜单栏。 此外,SWT还提供了事件处理机制,如监听器接口,如ControlListener、...
SWT Table是SWT中用于显示表格数据的控件,它支持多列、排序、选择等功能。在分页场景下,用户可以在Table中浏览每一页的数据,并通过导航按钮进行翻页。 分页工具的核心通常包括以下几个部分: 1. **数据模型**:...
在本文中,我们将深入探讨如何使用Swt/Jface库中的`tableViewer`组件来创建一个基本的表格视图。Swt(Standard Widget Toolkit)是Java中用于开发原生界面的应用程序开发工具包,而Jface是建立在Swt之上的抽象层,...
首先,`TableViewer`是Swt/Jface提供的一个高级组件,它封装了Swt中的`Table`控件,增加了许多便捷的功能,如数据绑定、过滤、排序等。在“入门教程三”中,我们将关注如何实现在表格中直接编辑数据,这是提高用户...
3. SWT组件: - 控件(Widgets):包括Button、Text、Label等基本元素,它们是用户界面的基本构建块。 - 布局(Layouts):如FillLayout、GridLayout、 MigLayout等,用于控制控件在容器中的布局方式。 - 表格...
SWT的`Table`支持复杂的排序和过滤功能,但实现分页需要自定义逻辑,比如使用`Composite`容器来模拟分页,或者利用事件监听来动态加载和隐藏数据。 在分页控件的设计中,通常会涉及到以下几个关键部分: 1. 数据源...
SWT的Table或Tree组件可以用来展示课程和成绩,提供筛选和排序功能。 5. **成绩展示**:展示学生的各科成绩,可能包括总分、平均分等统计信息。利用SWT的Label、ProgressBar或Chart组件,可以直观地展示这些数据。 ...
7. **Table and Tree Widgets**:SWT 提供了 Table 和 Tree 控件,允许用户显示和操作数据。在 JFace 中,TableViewer 和 TreeViewer 扩展了这些功能,添加了数据绑定和自定义列渲染等功能。 8. **Layout Managers*...
- 表格(Table)和树(Tree):SWT提供了高度定制的表格和树视图,可以处理大量数据,并支持排序、分页和选择。 - 菜单(Menu)和工具栏(ToolBar):开发者可以轻松地创建上下文菜单、主菜单以及工具栏,以提供...
1. **SWT组件**:包括各种基本和复杂控件,如Button、Label、Text、Shell、Composite等。每个控件都有其特定的属性、方法和事件。 2. **事件和监听器**:SWT支持事件驱动编程,你可以为控件添加监听器来响应用户的...
5. **表和树(Tables and Trees)**:Table和Tree控件允许展示和操作结构化数据,它们支持多列、排序、选择和自定义绘制等功能。 6. **图像处理(Image Handling)**:SWT提供了加载和显示图像的能力,包括位图...
SWT的Table控件支持多列,可以设置不同类型的列(文本、数字等),并允许用户进行排序、选择和编辑。通过监听Table的事件,可以实现对表格内数据的修改、删除等功能。例如,用户可以右键点击表格中的某一行,选择...
6. **表和树视图**: SWT的Table和Tree组件可以用来展示结构化数据,支持多选、排序和自定义列头。 7. **图像和颜色**:SWT提供了处理图像和颜色的方法,可以加载、显示和操作图像,以及设置控件的颜色和背景。 8....