Java 将JTable编辑保存到二维数组
我有一个JTable,它的单元格是可编辑的。但是,如果我编辑单元格并刷新表。更改不会保存。我是这样定义表的:Java 将JTable编辑保存到二维数组,java,swing,jtable,defaulttablemodel,Java,Swing,Jtable,Defaulttablemodel,我有一个JTable,它的单元格是可编辑的。但是,如果我编辑单元格并刷新表。更改不会保存。我是这样定义表的: String [] columnNames = {"Application number", "Name", "date", "fileLoc", "Coun
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));
我在网上浏览了一下,但似乎找不到任何关于保存对手机所做更改的建议。欢迎任何帮助
我想我不是在刷新桌子。我使用frame.dispose() 然后创建一个新的框架,其中表格位于中
- 然后,您丢失了在当前DefaultTableModel中所做的所有更改
- 不要使用新的DefaultTableModel和新的JTable创建新的JFrame
- TableCellEditor中的所有更改都是在JTables视图中显示的更改
- JTable(及其模型)已为此作业做好准备,不需要在运行时重新创建这些对象
- DefaultTableModel已实现所有通知程序,不需要重写任何其他事件,也不需要通过编程方式重写fireXxxXxx(),但AbstractTableModel需要这些事件
- 为JTable
mainTable.putClientProperty(“terminateEditOnFocusLost”,Boolean.TRUE)定义添加此代码行代码>
- DefaultTableModel重新呈现所需的二维阵列
TableModelListener
,它会在我更改单元格时触发。您的模型已更新。模型已更新。使用DefaultTableModel
时没有问题。可能还有其他问题。发布以获得更快的帮助。谢谢您的建议。是否可以对表所基于的2D arraylist的JTable save进行更改?原因是我需要保存这个数组,并在程序重新启动时重新加载它。谢谢。@Hoggie1790查看以获取模型正在使用的数据。+1,解决此问题的关键是表客户机属性,如中所述。