2012-10-27 70 views
1

我有一個表,說Table-C通過從Table-ATable-B.拖動如果該行從Table-ATable-C拖累獲得行數據設置單元可編輯屬性向JTable行則該行不可編輯,它應該是指定的顏色。如果將行從Table-B拖動到Table-C,那麼該行只有一些指定的列可編輯,並且該行以另一種顏色顯示。我無法爲Table-C中的某些指定行設置isCellEditable,因爲我無法控制用戶放置行的位置Table-C.我的第一部分任務是我應該可以拖動我能夠成功完成的數據。但我的第二部分是,我必須給這isCellEditable財產和color飛行這取決於它所依靠的表..這是我被卡住的部分。任何想法將不勝感激。在飛行

回答

2

您需要在行數據中提供一個標記,表格模型可以標識您不想編輯的行,這個標記也可以被渲染器使用。

一種方法是來包裝傳入行數據的包裝類作爲其拖放到表中,這樣你可以用種子你想要什麼都信息包裝/所需

+0

+1 ..好遠正如我所理解的那樣。這意味着在isCellEditable方法中,我應該得到當前行的標記,然後根據標記我應該返回true或false。但是標記應該是什麼地方..我可以插入另一個列(我沒有在表格中顯示)來存儲標記。 – Amarnath

+0

這取決於您的模型如何設置。如果每行由單個對象表示,則可以創建特殊的包裝對象,該對象包含行對象並提供您想要的擴展功能。這意味着你需要使用instanceof來確定如何處理每一行。如果你使用的數組,你可以包含超過可以用這些標記填充的列數的其他元素 – MadProgrammer

+0

是的,我的每行都是單個對象。所以我創建一個包含行對象和我的標記的包裝對象。 ?是rt .. – Amarnath