2010-05-21 97 views
3

現在我的我的Boolean值爲我的JTable顯示爲JCheckBoxes。這通常會很好,但我想將它們顯示爲替代字符串或圖像。 我可以讓它們顯示爲true/false,但是我想將它們顯示爲複選標記(✔),如果爲true,則爲false。可能是一個圖像,但讓我們先做一個字符串...爲布爾值設置Jtable/Column Renderer

回答

8

創建一個自定義的渲染器。擴展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

3

例子:

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