我一直在尝试通过直接输入来找到更新单元格的方法。从我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