为布尔值设置Jtable / Column Renderer

时间:2010-05-21 04:25:26

标签: java swing jtable renderer

现在,我的JTable的Boolean值显示为JCheckBoxes。这通常会很好,但我想将它们显示为替代字符串或图像。 我可以让它们显示为真/假,但我想将它们显示为勾选标记(✔)如果为真,如果为假则不显示。可能是图像但是先让它做一个字符串......

2 个答案:

答案 0 :(得分:9)

创建自定义渲染器。扩展DefaultTableCellRenderer并添加您自己的代码以显示您想要的任何内容。它可以是自定义图标,或者如果“复选标记”是可打印字符,则只需将渲染器文本设置为适当的字符即可。

阅读JTable API,您将找到有关“如何使用表格”的Swing教程的链接,该教程将提供有关渲染器的更多信息。

如果您需要更多帮助,请在SSCCE上显示您正在创建渲染器的问题。

编辑:

本教程介绍如何为给定类添加自定义渲染器,但不显示如何为特定列添加自定义渲染器。你会用:

table.getColumnModel().getColumn(...).setCellRenderer(...);

答案 1 :(得分:3)

示例:

table.setDefaultRenderer(Boolean.class, new BooleanRenderer(true));

with BooleanRenderer

public class BooleanRenderer extends JLabel implements TableCellRenderer
{
.....
}