我想重寫DefaultTableModel類的isCellEditable方法,以使我的表格單元格不可編輯。我試圖通過使用匿名內部類實現這個目標,jTable isCellEditable override override not working
但是表格單元格仍然編輯,並試圖調試時,我發現這些代碼並沒有執行覆蓋方法,而不是被直接調用的DefaultTableModel的的isCellEditable方法實例化DefaultTableModel類後。這是爲什麼發生?
我想重寫DefaultTableModel類的isCellEditable方法,以使我的表格單元格不可編輯。我試圖通過使用匿名內部類實現這個目標,jTable isCellEditable override override not working
但是表格單元格仍然編輯,並試圖調試時,我發現這些代碼並沒有執行覆蓋方法,而不是被直接調用的DefaultTableModel的的isCellEditable方法實例化DefaultTableModel類後。這是爲什麼發生?
改爲改寫JTable
類的isCellEditable(int, int)
。
注意:由於您覆蓋了DefaultTableModel
的isCellEditable(int, int)
而非JTable
,因此您的問題的標題非常具有誤導性。
另一個說明:我認爲很明顯,您使用的是GUI構建器,我的建議是不是使用它,因爲您不會從GUI構建器學到任何東西。
檢查模型的創建位置。該表在某處進行初始化(其中行/列數據添加到表中)。在現在(在您的代碼中顯示)內部類被替換爲另一個實例TableModel
(DefaultTableModel
實例我認爲)
感謝您的回覆,我已檢查過它,通過整個代碼進行調試。我相信它正在使用我在代碼中創建的模型.. –
@RameshSivaraman:我很驚訝; 'JTable'將視圖轉換爲協調模型並將請求轉發給模型;另請參閱[答案](http://stackoverflow.com/a/8291432/230513)。 – trashgod
是的,我真的很想弄清楚它爲什麼不重寫時,但是我通過覆蓋上面建議的jTable方法來修復它。 –
感謝您的答覆,我會盡力..對不起,我沒有提到這一點。 –
嘿Josh,那工作..我知道GUI builder是不是的方式,但我沒有時間花在建設GUI使用它..感謝您的幫助.. \ –
沒問題,你應該採取學習如何在沒有建設者幫助的情況下構建GUI的時候,所以你可以成爲一個更獨立的程序員。 –