2013-05-21 74 views
-2

我使用「設計」選項在eclipse中創建了JTable,現在我想使某些單元格不可編輯。這是我的代碼:設置不可編輯的JTable單元的一部分

public Frame(int choice) { 
     initComponents(); 
     defaultModel = (DefaultTableModel) m0.getModel(); 
     if (choice == 0) { 
     defaultModel.setColumnCount(7); 
     defaultModel.removeRow(6); 
     } 
    defaultModel.isCellEditable(2,2); 
    defaultModel.isCellEditable(3,3); 

} 
public boolean isCellEditable(int row, int column) { 
    return false; 
} 

單元格(2,2)和(3,3)應該是不可編輯的。但它不起作用。有人可以幫忙嗎?

+0

必須在爲此目的創建或定義的類和方法中使用正確的定義,所有內容都在Oracle教程[如何使用表 - 創建表模型]中進行了描述(http://docs.oracle.com/javase/tutorial /uiswing/components/table.html#data) – mKorbel

回答

1

你看到這裏的問題?:

public boolean isCellEditable(int row, int column) { 
    return false; // !!!!!!! 
} 

細胞(2,2)和(3,3)應該爲可編輯。但它不起作用。有人可以幫忙嗎?

您正在將單元格設置爲可用isCellEditable(...)方法覆蓋,然後你莫名其妙地想知道爲什麼它們不可編輯。對不起,但這有點瘋狂。解決方法是更改​​isCellEditable(...)方法返回的內容,以便它按照您的要求進行操作。如果你想讓它可以編輯2,2和3,3,那麼把這個邏輯放在上面的方法中。


編輯
我看到你編輯你的問題,因此現在是:

public boolean isCellEditable(int row, int column) { 
    return false; 
} 

細胞(2,2)和(3,3)應編輯。但它不起作用。有人可以幫忙嗎?

這當然會改變一切。我的猜測是你的isCellEditable不是JTable或其模型的真正覆蓋。你有沒有嘗試在它之前添加@Override註釋?你能告訴我們它是如何覆蓋當前的JTable或它的模型嗎?你需要證明這個方法是在擴展JTable或它的模型的類中,並且這實際上是正在使用的類。

+0

對不起 - 我的意思是 - 不可編輯的.... – user2405924

+1

@ user2405924:這個情況越來越嚴重...請參閱編輯。你的問題必須顯示更多。 –