首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于JXTreeTable的TreeTableRender

用于JXTreeTable的TreeTableRender
EN

Stack Overflow用户
提问于 2014-06-27 04:58:27
回答 1查看 634关注 0票数 0

如何为JXTreeTable中的不同列分配不同的渲染器。JXtreeTable有不同的列类型(如currency、date、...etc)。在JXTable中,我使用了getColumn(identifier).setCellRender(TableCellRender)方法。我应该怎么做才能拿到JXTreeTable?

EN

回答 1

Stack Overflow用户

发布于 2014-07-02 18:06:20

只要相同类型的所有列都是平等处理的,您就可以按类分配一个默认的渲染器。例如,您的表有两列具有java.util.Date值,您希望以相同的方式处理这两列:

代码语言:javascript
复制
myTreeTable.setDefaultRenderer(java.util.Date.class, new DefaultTableRenderer(StringValues.DATE_TO_STRING));

第一个参数是您希望此渲染器处理的对象类型。第二个参数是单元格渲染器。SwingX附带了一种非常简单的呈现机制,称为DefaultTableRenderer。它需要许多可能的参数,但最简单的方法是提供一个StringValue实例。这是一个接口,在实现时,它接受任意对象,并以某种方式将其转换为字符串。StringValues类包含一些预定义的实现。在上面的示例中,我使用了StringValues.DATE_TO_STRING,它将单元格中的java.util.Date对象传递给一个默认的DateFormat实例,并返回字符串结果。对于要处理的所有对象类,都要这样操作。

如果您只需要对单个列进行特定呈现,则只需将该列插入调用的中间:

代码语言:javascript
复制
myTreeTable.getColumnExt(myColumnIdentifier).setCellRenderer(java.util.Date.class, new DefaultTableRenderer(myGloriousStringValueConverter));

请注意,调用不再是对setDefaultCellRenderer.的调用

这种呈现机制是SwingX最好的特性之一。易于使用,与荧光笔流水线结合使用非常有效。

所有这些都适用于JXTreeTable的表部分。层次结构列(第一列)可以用相同的方式设置,只是调用

代码语言:javascript
复制
myTreeTable.setTreeCellRenderer(new DefaultTreeRenderer(myGloriousStringValue));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24440125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档