为布尔值设置Jtable/Column Renderer

问题描述:

现在我的我的Boolean值为我的JTable显示为JCheckBoxes。这通常会很好,但我想将它们显示为替代字符串或图像。 我可以让它们显示为true/false,但是我想将它们显示为复选标记(✔),如果为true,则为false。可能是一个图像,但让我们先做一个字符串...为布尔值设置Jtable/Column Renderer

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

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

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

编辑:

本教程演示如何添加自定义呈现给定类,但它并不显示如何添加自定义渲染特定列。你可以使用:

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

如何再加入这列? http://pastebin.com/GzTQXrGU – twodayslate 2010-05-22 03:48:56

+0

请参阅上面的修改。 – camickr 2010-05-22 14:54:54

+0

所以,当我创建'BooleanRenderer(Format formatter)'我为格式化程序放什么...... – twodayslate 2010-05-22 18:22:53

例子:

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

与BooleanRenderer

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

请阅读我的建议以延长DefaultTableCellRenderer(这是2小时前提供的)。扩展默认渲染器有多种原因。首先,默认情况下会获得默认行为,例如行突出显示,单元格获得焦点时的边框突出显示。其次,默认渲染器已经针对更快的绘画进行了优化。 – camickr 2010-05-21 15:58:39