将JTable编辑保存到二维数组

时间:2013-03-14 16:13:55

标签: java swing jtable defaulttablemodel

我有一个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));

我在网上看了一下,但似乎找不到任何关于保存对单元格所做更改的建议。非常欢迎任何帮助!

1 个答案:

答案 0 :(得分:1)

  

我想我不会这样刷新桌子。我用frame.dispose()   然后使用表格创建一个新框架。

  • 然后您丢失了当前DefaultTableModel

  • 中所做的所有更改
  • 不要使用新的DefaultTableModel和新的JTable来创建新的JFrame

  • 来自TableCellEditor的所有更改都是在JTables视图中显示的更改

  • JTable(及其模型)已为此作业做好准备,不要在运行时重新创建这些对象

  • DefaultTableModel实现了所有通知程序,不需要覆盖任何其他事件,也不需要以编程方式覆盖fireXxxXxx(),但这些事件是AbstractTableModel

  • 所必需的
  • 为JTable mainTable.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);

  • 添加此代码行
  • DefaultTableModel重新表示您所需的2D数组