2010-02-19 40 views
1

我在JTable的單元格中添加了JCheckBox。但是當包含JTable的框架加載時,我看不到JTable中的JCheckBox。當我單擊該單元格時,它將顯示JCheckBox的真/假值,而不是該組件。在JTable單元格中添加的JCheckBox不可見

checkbox_column = table.getColumnModel()。getColumn(4); checkbox_column.setCellEditor(new DefaultCellEditor(複選框));

另外如何禁用在JTable中拖動它的列重新定位?

+0

您在哪裏被要求閱讀上次發佈中「如何使用表」的Swing教程。本教程再次包含如何使用複選框的工作示例。你爲什麼認爲我建議你閱讀教程。它要學習,所以你不要浪費時間提問文檔中涉及的問題。不僅如此,你甚至不打算接受所有其他帖子的單一答案。我希望論壇中的其他人能夠按照我的計劃在未來加入你的行列。 – camickr 2010-02-19 21:33:38

回答

1

您設置了處理單元格原地編輯的cellEditor。小區的總作畫是由通過setCellRenderer()

設爲禁用重新排序列的單元格渲染處理,你要

table.getTableHeader().setReorderingAllowed(false); 
1

記住,數據模型(更具體地說,爲TableModel)是分開風景。

您應該將單元格的值設置爲布爾值,而不是將值設置爲JCheckBox。然後確保您的TableModel的getColumnClass()方法爲列4返回布爾值。有這樣做的不同方法,但creating a custom TableModel和實現getColumnClass()方法是一種方法。

DefaultCellRenderer/DefaultCellEditor將顯示布爾值的複選框。正如Devon指出的那樣,您還可以設置自定義渲染器/編輯器,但您仍然希望在該列中存儲布爾值而不是JCheckBoxes。