2011-11-25 35 views
3

我有一個綁定到JTable的ArrayList。之後TableCellRenderer丟失

bindingGroup.unbind(); 
bindingGroup.bind(); 

(完成刷新數據)我丟失了表格單元格渲染器行爲。

有什麼建議嗎?

+0

@camickr - 同意,很明顯,問題是什麼(一旦你知道典型問題)投票重新打開 – kleopatra

+0

誰刪除(我和他人的)評論,爲什麼? – kleopatra

回答

1

我不知道bind()方法做了什麼,但是如果它們通過更改模型來刷新表,那麼將重新創建TableColumnModel,從而導致您失去了添加到表中的任何自定義渲染器。

一種解決方法是在調用bind()方法後,將渲染器添加回表中。創建JTable中後

或者你可以使用:

table.setAutoCreateColumnsFromModel(false); 

防止TableColumnModel中被重建。

+0

非常感謝camickr和kleopatra重新打開我的問題,下次我會嘗試更加清晰。 – user1066163

+0

它有效。按照你的建議,我重新做setCellRenderer。非常感謝camckir。我不知道綁定導致丟失自定義渲染器。謝謝。 – user1066163