2011-03-01 57 views
-1

嗨我做一個大學項目,並在我的GUI中有一個JTable。我希望用戶能夠選擇行而不能更改表中的數據。我使用兩個數組來創建表而不是表模型。謝謝JTable行選擇不改變數據

我不想使用tablemodels !!!!

+0

您不能使用表模型。即使你不知道,你現在也在使用它。 – jzd 2011-03-01 15:50:11

回答

3

您可以在您的表模型中isEditable()方法返回false,你的表將無法編輯:

public class MyTableModel extends AbstractTableModel{ 
public void isEditable(){ 
    return false; 
} 
} 

然後你有一個表,並設置其型號爲MyTableModel對象如。

JTable table = new JTable(); 
table.setModel(new MyTableModel()); 

額外的信息:

回到默認爲false,這樣你就不會需要重寫它來獲得這種行爲。

DefaultTableModelDefaultTableModel該方法的實現默認情況下返回true,因此如果希望使單元格不可編輯,則必須重寫一個。

Resource of this answer.

1

您應該定義自己的表模型,方法是擴展AbstractTableModel或DefaultTableModel。只需覆蓋isCellEditable(int row, int col)並使其返回false

+0

Nooooo我不想使用表模型!!!!!!!!!!! 1111oneone – 2011-03-01 15:43:12

+1

表模型是使用JTable的正確方法。如果你不喜歡它,那麼...對你來說太糟糕了。請注意,這與執行JTable table = new JTable(新的DefaultTableModel(rows,columnNames)一樣簡單){@Override public boolean isCellEditable(int row,int col){return false;}});我看不出有什麼複雜的。 – 2011-03-01 15:47:03