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);

  • 必要な 2D 配列を表す DefaultTableModel

于 2013-03-14T16:34:17.297 に答える