我有一个JTable,其单元格是可编辑的。但是,如果我编辑单元格并刷新表格。更改未保存。这就是我定义表格的方式:
String [] columnNames = {"Application number",
"Name",
"date",
"fileLoc",
"Country"};
//Data for the table
String [][] data = table.tableArray;//tableArray is an array of array of strings.
TableModel model = new DefaultTableModel(data, columnNames);
JTable mainTable = new JTable(model);
model.isCellEditable(data.length,columnNames.length);
contentPane.add(new JScrollPane (mainTable));
我在网上看了一下,但似乎找不到任何关于保存对单元格所做更改的建议。非常欢迎任何帮助!
答案 0 :(得分:1)
我想我不会这样刷新桌子。我用frame.dispose() 然后使用表格创建一个新框架。
然后您丢失了当前DefaultTableModel
不要使用新的DefaultTableModel和新的JTable来创建新的JFrame
来自TableCellEditor的所有更改都是在JTables视图中显示的更改
JTable(及其模型)已为此作业做好准备,不要在运行时重新创建这些对象
DefaultTableModel实现了所有通知程序,不需要覆盖任何其他事件,也不需要以编程方式覆盖fireXxxXxx(),但这些事件是AbstractTableModel
为JTable mainTable.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);
DefaultTableModel重新表示您所需的2D数组