第六篇
TTable
的
高级使用
Table
Cell
Renderer
就像
Swing
的
JTable
一样,每一个
table
列都可以有一个
cell
renderer
去绘制每一列的
cells
。
Twaver
在
table
cell renderers
在
twaver.table.renderer
中提供了一系列的预定的
table
cesll renderer
去使用。
TTable table = new TTable();
table.addColumn(new
TTableColumn("Index",
"Index",
new twaver.table.renderer.NumberRenderer()));
table.addColumn(new
TTableColumn("color",
"Color",
new twaver.table.renderer.ColorRenderer()));
table.addColumn(new
TTableColumn("date",
"Date",
new twaver.table.renderer.DateRenderer()));
TTableModel model =
table.getTableModel();
model.getPublishedColumn(1).setEditable(true);
for (int i = 0; i < 10; i++) {
Vector row = new Vector();
row.addElement(new Integer(i));
row.addElement(Color.red);
row.addElement(new Date());
model.addRow(row);
}
Table Cell
Editor
同
样,
Twaver
也提供了
Etitor
去编辑列的
cells.
提供这些功能的类为:
twaver.table.editor.
TTable table = new TTable();
table.addColumn(new
TTableColumn("Index",
"Index",
new twaver.table.renderer.NumberRenderer()));
table.addColumn(new
TTableColumn("color",
"Color",new
twaver.table.renderer.ColorRenderer()));
table.addColumn(new
TTableColumn("date",
"Date",
new twaver.table.renderer.DateRenderer()));
TTableModel model =
table.getTableModel();
//set color column editable.
model.getPublishColumn(1).setWrite(true);
for (int i = 0; i <
10; i++) {
Vector
row = new Vector();
row.addElement(new Integer(i));
row.addElement(Color.red);
row.addElement(new
Date());
model.addRow(row);
}
以上的 这种写法,
twaver
这帮人写技术文档真吝啬,只告诉我们这么用,让我们自己变傻子
啊。我需要其它的效果怎么办呢。不提供,我们就得自己实现了。
表格弹出菜单
在
Twaver
组件中提供了两种弹出菜单方式:表格体弹出菜单和列头右键弹出菜
单。默认的弹出菜单如下:
列
头的弹出菜单
默
认的表格体弹出菜单
自定义 弹出菜单,你需要创建一个
TTablePopupMenuFactory
并把她设置到
table
里
TTable table
=
new TTable();
//
设置列头右键菜单为不显示
table.setTableHeaderPopupMenuFactory(null);
//
设置表格体右键菜单不显示
table.setTableBodyPopupMenuFactory(null);
//
改变列头弹出菜单
table.setTableHeaderPopupMenuFactory(new
TTablePopupMenuFactory(){
public JPopupMenu getPopupMenu(TTable table,MouseEvent e){
JPopupMenu
menu =new JPopupMenu();
menu.add(new
JMenuItem(“menu one”));
menu.add(new
JMenuItem(“menu two”));
return
menu;
}
});
//
改变表格体弹出菜单
table.setTableBodyPopupMenuFactory(new
TTablePopupMenuFactory(){
JPopupMenu menu = new
JPopupMenu();
menu.add(new JMenuItem(“menu three”));
menu.add(new JMenuItem(“menu four”));
return
menu;
});
补充:
Twaver
的官方使用文档也不厚道,太吝啬;可以如下加菜单;如
;只需要修改一下代码
如:
JPopupMenu
popupMenu =
new
TPopupMenu(
"Enovell"
, Color.
ORANGE
,
Color.
WHITE
, Color.
BLUE
, 20);
而且另外像上面那样写菜单的话,
里面的事件监听更不好整了,代码写道那里面多乱啊。还应该新建一个类实现
TTablePopupMenuFactory
接口,再把生成的实例使用
setTableBodyPopupMenuFactory
或者
setTableHeaderPopupMenuFactory
进去。这样可以实现更好的耦合。
使用过滤器
TWaver table
有能力实现过滤数据。并且
可以同时设置几个过滤器到一个表格对象上
使用
TTableRowFilter
下面小 片段展示如何使用
table
数据过滤器
TTable table = new TTable();
table.addColumn(new
TTableColumn("Index"));
table.addColumn(new TTableColumn("Color"));
table.addColumn(new
TTableColumn("Date"));
TTableModel model = table.getTableModel();
for (int i = 0; i < 10; i++) {
Vector row = new Vector();
row.addElement(new Integer(i));
if(i%2==0){
row.addElement(Color.red);
}else{
row.addElement(Color.green);
}
row.addElement(new Date());
model.addRow(row);
}
下面创 建一个数据过滤器,过滤出红色的行
model.addRowFilter(new TTableRowFilter(){
public boolean
isVisible(TTable table, Vector rowData) {
//Note: TTable has two
internal predefined columns,
//so the column index is start from 2.
Color color=(Color)
rowData.get(3);
return
color.equals(Color.red);
}
});
补充: 还是那样,
Twaver
的文档写的不全,实用的不降:过滤
器使用最为频繁的:
1.
AlarmVisibleFilter;
alarmFilter
=
new
AlarmVisibleFilter() {
public
boolean
isVisible(Alarm
alarm) {
}};
table.addVisibleFilter(
alarmFilter
);
这个是在
AlarmTable
里面经常用
2.
在
TElementTable
里面可以新建一个类实现
VisibleFilter
接口,把 新建类的实例加到
table
里面,
elementTable.setVisibleFilter(visibleFilter);
如下:
visbleFilter
=
new
VisibleFilter(){
public
boolean
isVisible(Element
element) {}}
为了代码更清晰,建议单独写出一个类实现
VisibleFilter
接口。
表格的更多技巧
右键全 选整行:
TTable.setSelectableOnRightClick(true)
Using Alternating Row
Color
TElementTable
table = new TElementTable(box){
Public Component
prepareRenderer(TableCellRenderer renderer,int row,int column){
Component result =
super.prepareRenderer(renderer,row,column);
if(row%2==0){
result.setBackground(Color.white);
}else{
Result.setBackground(new
Color(238,238,238));
}
return
result;
}
}
隐藏
Grid line
//
隐藏垂直的网格线
table.setShowVerticalLines(false);
//
隐藏横着的网格线
table.setShowHorizontalLines(false);
分享到:
相关推荐
TWaver组件是针对Flex和Flash平台的专业图形化组件,由Adobe公司的Flex/Flash技术构建。它为电信行业的运营支撑系统提供了一种富互联网应用(RIA)解决方案,同时也适用于电力、金融、制造、交通等多个领域的软件...
【标签】"twaver java 4.1 整合包" 表明这是一个包含Twaver 4.1所有必要组件的完整集合,包括Java库、相关的文档和API参考,是进行Java项目开发的必备资料。 【压缩包子文件的文件名称列表】: 1. **demo.bat** 和 ...
通过这个"TWaver的3d图形组件库,小demo",开发者不仅可以学习到如何使用TWaver库创建3D图形,还能了解到现代Web开发中的3D数据可视化技术和最佳实践。通过研究提供的源代码,开发者可以提升自己在WebGL和JavaScript...
TWaver Flex中的告警功能是该组件的一个重要组成部分,文档中讲解了告警的使用,包括告警级别、状态与统计、以及告警的呈现方式。 ### 版权声明和使用许可 文档中也明确了版权信息和版权声明,强调了文档是...
“twaver.js使用示例”这一标题表明了我们即将探讨的是一个关于twaver.js的实践应用案例。Twaver.js是一款强大的图形化建模和可视化库,主要用于创建复杂的网络拓扑图、流程图、组织结构图等。这个标题暗示我们将...
使用TWaver前,需熟悉几个基本概念:图元(Element)、容器(DataBox)和画布(Network)。 图元:图形中的各种基本元素,如节点(Node)、连线(Link)等; 容器:图元都统一放置在一个容器(DataBox)中进行管理...
- **界面交互**也是TWaver的重要组成部分之一,它提供了丰富的API来处理用户的输入事件,并且可以根据用户的操作实时更新视图。 ### 产品家族与技术栈 - TWaver支持多种技术和平台,包括**Java**、**Flex**、**...
Twaver java开发帮助文档,英文版的。
该文档详细介绍了 Twaver Web SVG 的架构、开发流程以及常见问题解决方案等内容,旨在帮助开发者更好地理解和掌握 Twaver Web SVG 的使用方法。 #### 二、简介 ##### 2.1 TWAVER WEBSVG 结构 Twaver Web SVG 采用...
TWAVER是一款强大的JAVA图形设计组件,专为电信...综合这些资源,开发者不仅可以了解TWAVER的基本功能,还能通过示例代码和文档深入理解如何在自己的项目中集成和扩展TWAVER组件,以构建出高效且用户友好的图形界面。
【描述】"TWaver-Java手册,单机Demo 相应的文档和接口"涵盖了该组件的使用指南、示例代码以及详细的API接口文档。手册部分将引导用户了解如何集成和操作TWaver组件,而Demo则提供了实际运行的示例,帮助开发者快速...
刚弄到的最新版本TWaver3.1的Demo源代码(包含了DEMO运行程序,相关文档,API接口,源码,网站上没有的)...它不但提供了全部的Demo,还有相应的全部文档和源码,有了它,您完全可以根据自己的需要做出漂亮的电信组件。
在视图组件部分,文档将介绍Network、Tree和Table三种主要组件的介绍,这些组件是构建可视化界面的核心。Network组件用于展示网络拓扑结构,Tree组件用于构建树形结构,而Table组件用于展示和操作表格数据。 数据...
【标题】"TWaver 官方文档"指出的是TWaver这一技术的相关官方资料,它代表了一个专注于数据可视化和图表绘制的工具。TWaver是用于创建交互式图表、网络图、流程图、地图等复杂可视化应用的JavaScript库。通过官方...
《TWaver .NET 开发指南+API(英文版)》是专为.NET开发者设计的一份重要参考资料,旨在帮助开发者深入理解和高效使用TWaver组件。TWaver是一个强大的数据可视化工具,尤其适用于创建复杂的图表、网络图以及地理信息...
标题中的"twaver-html5-5.9.0-api_html5_-5.9.0-api_twaver_"似乎是指一个基于HTML5的Twaver版本5.9.0的应用程序接口(API)文档。Twaver是一个强大的数据可视化和网络建模工具,广泛应用于网络拓扑、流程图、组织...
【TWaver-Java 电信组件】是专门为电信行业设计的一款强大的可视化组件库,它提供了丰富的图形化工具,用于构建复杂的网络拓扑、设备状态监控、业务流程展示等应用。这个单机Demo是开发者和系统集成商了解和评估...
8. documents:文档目录,可能包含TWaver的用户手册、API参考等资料,帮助开发者更深入地了解和使用TWaver。 9. javadoc:Java文档目录,通常生成自源代码,提供了TWaver库的API详细说明,包括方法、类和接口的描述...