第三 篇:使用表格列
一般情 况下使用一个空的表格是不能做任何事情的。所以让我多添加几列到表格里面去, TWaver 使用类 twaver.table.TTableColumn 这个类去装载一个表格列的信息。它继承自 javax.swing.table.TableColumn 并且给你提供了排序、可见等其它选项。
添加一 个列:
twaver.TTable
public void addColumn(TableColumn aColumn)
public void addColumns(List columnList);
twaver.table.TtableModel
public void addColumn(TableColumn aColumn)
public void addColumn(List columnList)
删除一 个列:
Twaver.TTable
Public void removeColumn(TableColumn column)
Public void removeColumnByName(String columnName)
Twaver.table.TtableModel
Public void removeColumn(TableColumn column)
Public void removeColumnByName(String columnName)
清除所 有列:
Twaver.table.TtableModel
Public void clearAllColumns()
这里我 们就为一个表格创建两个列
TTable table = new TTable();
table.addColumn(new TTableCOlumn(“Name”));
table.addColumn(new TTableColumn(“Description”));
下面的 一些属性是在 Twaver table 列里定义的:
属 性 |
类 型 |
描 述 |
name |
String |
列 头名,它被用与使用国际化的对应键 |
displayname |
String |
列 的展示名字,如果展示的名字不为 null , 那它将被展示为表格的列头文字;另外, TWaver 从 i18n 的资源文件里获取国际化的字符串。这个键值为:“ table.column. ” +name |
sortComparator |
java.util.Comparator |
为 表格排序的 Comparator |
editable |
boolean |
列 是不是可以修改的 |
visible |
boolean |
列 是不是可见的 |
sortmode |
int |
l TTableColumn.SORT_NON: 无排序 l TTableColumn.SORT_ASCEND: 升序排列 l TTableColumn.SORT_DESCEND: 降序排序 |
preferredWidth |
int |
优 先的表格列宽 |
javaClass |
Class |
设 置当列的数据类, TWaver 利用它从 TUIManager 中注册 renderer 和 editor |
editor |
TableCellEditor |
列 的 Editor |
renderer |
TableCellEditor |
列 的 Renderer |
表格列 的隐藏
你可以 设置可见属性来隐藏或者显示表格的列
TTable table = new TTable();
table.addColumn(new TTableColumn("Name"));
table.addColumn(new TTableColumn("Description"));
table.addColumn(new TTableColumn("Additional"));
隐藏“ Additional ”列
table.getColumnByName(“Additional”).setVisible(false);
你也可 以在表格列头点击右键,在弹出的右键菜单上去掉列的显示对钩,去掉对钩隐藏,加上对钩显示对应的列
表格列排序
TWaver table 数据可以通过列被排序,这 种排序方式有无排序、升排序和降排序,点击表格的表头去改变表格的排序方式,按住 Ctr 键的同时点击表格的列头可以实现多个列的排序。
使用 table.setSortable(false) 去设置表格的不可排序
使用 TTableColumn.setSortComparator(java.util.Comparator) 去自定义排序
使用 Sort
TWaver table 支持列排序和默认排序方 式,点击表格的列头去进行列排序
设置列 不可排序:
Table.getTableModel().getColumnByName(“age”).setSortable(false);
如上看 到效果了
多列排 序
TElementTable 支持多列排序,你可以按住 ctr 键的同时点击列头实现多列排序:
通过 API 排 序
单列排 序: table.getTableModel().sortColumn(0,false);
多列排 序:
table.getTableModel().sortColumn(0,false);// 这列一额可以为 true
table.getTableModel().sortColumn(1,true);// 使用 true 是不是按住了 ctr 键