`
hn_liuyi
  • 浏览: 32451 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

TWaver组件之Table使用(翻译TWaver文档+补充自己使用体会)六

阅读更多

第六篇 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);

0
3
分享到:
评论

相关推荐

    flex Twaver组件使用

    TWaver组件是针对Flex和Flash平台的专业图形化组件,由Adobe公司的Flex/Flash技术构建。它为电信行业的运营支撑系统提供了一种富互联网应用(RIA)解决方案,同时也适用于电力、金融、制造、交通等多个领域的软件...

    Twaver java 4.1资源包(库+学习文档+javadoc)

    【标签】"twaver java 4.1 整合包" 表明这是一个包含Twaver 4.1所有必要组件的完整集合,包括Java库、相关的文档和API参考,是进行Java项目开发的必备资料。 【压缩包子文件的文件名称列表】: 1. **demo.bat** 和 ...

    TWaver的3d图形组件库,小demo

    通过这个"TWaver的3d图形组件库,小demo",开发者不仅可以学习到如何使用TWaver库创建3D图形,还能了解到现代Web开发中的3D数据可视化技术和最佳实践。通过研究提供的源代码,开发者可以提升自己在WebGL和JavaScript...

    TWaver_Flex中文帮助文档

    TWaver Flex中的告警功能是该组件的一个重要组成部分,文档中讲解了告警的使用,包括告警级别、状态与统计、以及告警的呈现方式。 ### 版权声明和使用许可 文档中也明确了版权信息和版权声明,强调了文档是...

    twaver.js使用示例

    “twaver.js使用示例”这一标题表明了我们即将探讨的是一个关于twaver.js的实践应用案例。Twaver.js是一款强大的图形化建模和可视化库,主要用于创建复杂的网络拓扑图、流程图、组织结构图等。这个标题暗示我们将...

    TWaver“一站式”UI组件提供包括网络拓扑图、地图、设备面板图、流程图、各种Chart图表、树图、表格等各种通用组件

    使用TWaver前,需熟悉几个基本概念:图元(Element)、容器(DataBox)和画布(Network)。 图元:图形中的各种基本元素,如节点(Node)、连线(Link)等; 容器:图元都统一放置在一个容器(DataBox)中进行管理...

    TWaver文档

    - **界面交互**也是TWaver的重要组成部分之一,它提供了丰富的API来处理用户的输入事件,并且可以根据用户的操作实时更新视图。 ### 产品家族与技术栈 - TWaver支持多种技术和平台,包括**Java**、**Flex**、**...

    Twaver java 帮助文档

    Twaver java开发帮助文档,英文版的。

    Twaver Web SVG 开发说明文档

    该文档详细介绍了 Twaver Web SVG 的架构、开发流程以及常见问题解决方案等内容,旨在帮助开发者更好地理解和掌握 Twaver Web SVG 的使用方法。 #### 二、简介 ##### 2.1 TWAVER WEBSVG 结构 Twaver Web SVG 采用...

    TWAVER-最好的JAVA 图形设计组件-试用

    TWAVER是一款强大的JAVA图形设计组件,专为电信...综合这些资源,开发者不仅可以了解TWAVER的基本功能,还能通过示例代码和文档深入理解如何在自己的项目中集成和扩展TWAVER组件,以构建出高效且用户友好的图形界面。

    TWaver-Java 电信组件

    【描述】"TWaver-Java手册,单机Demo 相应的文档和接口"涵盖了该组件的使用指南、示例代码以及详细的API接口文档。手册部分将引导用户了解如何集成和操作TWaver组件,而Demo则提供了实际运行的示例,帮助开发者快速...

    最新TWaver3.1 -Java 电信组件(包含 Demo 相关文档 API接口 源码)

    刚弄到的最新版本TWaver3.1的Demo源代码(包含了DEMO运行程序,相关文档,API接口,源码,网站上没有的)...它不但提供了全部的Demo,还有相应的全部文档和源码,有了它,您完全可以根据自己的需要做出漂亮的电信组件。

    TWaver HTML5 Developer Guide

    在视图组件部分,文档将介绍Network、Tree和Table三种主要组件的介绍,这些组件是构建可视化界面的核心。Network组件用于展示网络拓扑结构,Tree组件用于构建树形结构,而Table组件用于展示和操作表格数据。 数据...

    twaver 官方文档

    【标题】"TWaver 官方文档"指出的是TWaver这一技术的相关官方资料,它代表了一个专注于数据可视化和图表绘制的工具。TWaver是用于创建交互式图表、网络图、流程图、地图等复杂可视化应用的JavaScript库。通过官方...

    TWaver .NET 开发指南+API(英文版)

    《TWaver .NET 开发指南+API(英文版)》是专为.NET开发者设计的一份重要参考资料,旨在帮助开发者深入理解和高效使用TWaver组件。TWaver是一个强大的数据可视化工具,尤其适用于创建复杂的图表、网络图以及地理信息...

    twaver-html5-5.9.0-api_html5_-5.9.0-api_twaver_

    标题中的"twaver-html5-5.9.0-api_html5_-5.9.0-api_twaver_"似乎是指一个基于HTML5的Twaver版本5.9.0的应用程序接口(API)文档。Twaver是一个强大的数据可视化和网络建模工具,广泛应用于网络拓扑、流程图、组织...

    TWaver-Java 电信组件 单机Demo 相应的文档和接口

    【TWaver-Java 电信组件】是专门为电信行业设计的一款强大的可视化组件库,它提供了丰富的图形化工具,用于构建复杂的网络拓扑、设备状态监控、业务流程展示等应用。这个单机Demo是开发者和系统集成商了解和评估...

    TWaver-java-4.1最新 官网试用版jar包及Demo

    8. documents:文档目录,可能包含TWaver的用户手册、API参考等资料,帮助开发者更深入地了解和使用TWaver。 9. javadoc:Java文档目录,通常生成自源代码,提供了TWaver库的API详细说明,包括方法、类和接口的描述...

Global site tag (gtag.js) - Google Analytics