有沒有辦法更新JTable
上的當前DefaultTableModel
?爲了澄清我的意思,我將在下面使用一些代碼示例。更新當前JTable模型
,如果有一種方法可以做到類似這樣
myTable.java
public class myTable extends JTable {
private static final long serialVersionUID = -5819940358496590055L;
public myTable(TableModel dM) {
setModel(dM);
}
public myTable(Object[][] tableData, Object[] columnHeaders) {
this(new DefaultTableModel(tableData, columnHeaders));
}
public void setEditable(boolean b) {
DefaultTableModel model = (DefaultTableModel) this.getModel();
//Do some code here to make the editable or uneditable
setModel(model);
}
}
someJavaFile東西,你可能會宣佈一個JTable這樣
DefaultTableModel model = new DefaultTableModel(tableData, tableHeaders)
{
private static final long serialVersionUID = 8785594035471551113L;
@Override
public boolean isCellEditable(int row, int column)
{
return false;
}
};
JTable table = new JTable(model);
panel.add(table);
我問.java
JTable table = new myTable(tableData, tableHeaders);
table.setEditable(false);
panel.add(table);
我不是要求你爲我做這件事,而是我要求你幫助我找到一種方法更新當前DefaultTableModel
。
我感謝所有幫助
編輯澄清
我試圖找到一種方式來操作當前DefaultTableModel
上JTable中的東西,如表是否可編輯或不作爲有沒有支持切換表格是否可以在模型製作後編輯的方法。只有isCellEditable()
。
爲什麼這會有用?
如果你想操作表上的ActionListener
的工作方式這將是有用的一個JButton
或類似的東西
保留對當前'DefaultTableModel'的引用。它有你需要更新的所有方法。 –
@AndrewThompson你可以擴展它對於這個具體的例子有什麼幫助,因爲沒有'model.setEditable()' – Dan
你想讓一些單元格不可編輯或者什麼? – Frakcool