我一直在嘗試通過直接輸入來找到更新單元格的方法。從我reshearch,每個人都似乎是說,你必須使用無法從JTable更新單元格
myJTable.fireTableCellUpdated()
Althought,它一直要求我投myJTable - >它不能被鑄造成AbstractTableModel的是什麼,從我的理解,是必要的。
這裏是我的表當前的代碼,如果使可能幫助:
myJTable= new JTable();
myJTable.setModel(new DefaultTableModel(
new Object[][] {
{null, null, null},
},
new String[] {
"Thing#1", "Thing#2", "Thing#3"
}
));
myJTable.getModel().addTableModelListener(new TableModelListener() {
public void tableChanged(TableModelEvent e) {
myJTable.fireTableCellUpdated(e.getFirstRow(), e.getColumn());
myJTable.repaint(tblCG.getCellRect(e.getFirstRow(), e.getColumn(), false));
myJTable.putClientProperty("terminatedEditOnFocusLost", true);
}
});
怎麼可能對我來說,從已經從用戶更新通過直接輸入單元格保存DATAS? 謝謝!
'myJTable.fireTableCellUpdated()' - 沒有,從來沒有!您應該能夠簡單地使用'JTable#setValueAt'或'TableModel#setValueAt',並且如果'TableModel'配置正確,它應該自動通知表。你應該永遠不要從類上下文中調用事件觸發方法 – MadProgrammer 2014-11-21 01:07:39
@MadProgrammer好的,如果我遵循你的邏輯,我應該這樣做:'myJTable.setValueAt(??? getCellValue ???,e.getFirstRow(),e。 getColumn());' – MammouthQc 2014-11-21 01:12:29