0

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

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

4

1 回答 1

1

我想我并没有像这样刷新桌子。我使用 frame.dispose() 然后创建一个包含表格的新框架。

  • 那么您丢失了在当前 DefaultTableModel 中所做的所有更改

  • 不要使用新的 DefaultTableModel 和新的 JTable 创建新的 JFrame

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

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

  • DefaultTableModel 已实现所有通知程序,无需覆盖任何其他事件,也无需以编程方式触发 XxxXxx(),但 AbstractTableModel 需要这些事件

  • 为您的 JTable 定义添加此代码行mainTable.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);

  • DefaultTableModel 代表您所需的二维数组

于 2013-03-14T16:34:17.297 回答