2

少し戸惑います。JTable を更新しようとしていますが、更新が行われません。これは私の現在のコードです:

private void addTable(){

        table = new JTable();// the table for 'Benchmark' tab
        table.setShowVerticalLines(false);
        table.setBorder(null);  

        data = new Object[][] {
                {"Key", ""},//result[0]
                {"Precision", ""},//result[2]+" %"
                {"Cipher", ""},//result[4]
                {"Language", ""},
                {"Performance", ""},//result[3]
        };


        String [] header = new String[] {"Subject of Interest", "Output"};
        model = new DefaultTableModel(data, header);        

        table.setModel(model);


        table.getColumnModel().getColumn(0).setPreferredWidth(136);
        table.getColumnModel().getColumn(1).setPreferredWidth(550);
        GroupLayout gl_panelBenchmark = new GroupLayout(panelBenchmark);
        gl_panelBenchmark.setHorizontalGroup(
                gl_panelBenchmark.createParallelGroup(Alignment.TRAILING)
                .addComponent(textInfoCrypto, GroupLayout.DEFAULT_SIZE, 759, Short.MAX_VALUE)
                .addGroup(gl_panelBenchmark.createSequentialGroup()
                        .addGap(10)
                        .addComponent(textPane, GroupLayout.DEFAULT_SIZE, 739, Short.MAX_VALUE)
                        .addGap(10))
                        .addGroup(Alignment.LEADING, gl_panelBenchmark.createSequentialGroup()
                                .addContainerGap()
                                .addComponent(table, GroupLayout.DEFAULT_SIZE, 739, Short.MAX_VALUE)
                                .addContainerGap())
                );
        gl_panelBenchmark.setVerticalGroup(
                gl_panelBenchmark.createParallelGroup(Alignment.LEADING)
                .addGroup(gl_panelBenchmark.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(textInfoCrypto)
                        .addPreferredGap(ComponentPlacement.UNRELATED)
                        .addComponent(textPane, GroupLayout.PREFERRED_SIZE, 41, GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(ComponentPlacement.UNRELATED)
                        .addComponent(table, GroupLayout.PREFERRED_SIZE, 79, Short.MAX_VALUE)
                        .addContainerGap())
                );
        panelBenchmark.setLayout(gl_panelBenchmark);

    }

これが、この段階で単一の行を更新しようとしている方法です。以下のコードは、別のメソッドから呼び出されています。

data[0][0]= result[0];
model.fireTableCellUpdated(0, 0);

この段階では、行名を含むテーブル フレームのみが表示され、データは表示されません。何か助けてください。

4

2 に答える 2

3

dataテーブルモデルに含まれていないローカルデータのみです。以下を使用する必要があります。

tableModel.setValue(結果[0], 0, 0);

于 2012-08-14T12:14:08.283 に答える
2
  1. すべてのfireXxxXxxイベントがDefaultTableModel実装され、正しく

  2. この from および based on の JTable には、DefaultTableModelModelToView または ViewToModel の更新に関する問題はなく、制限はありません。

  3. SSCCEでクエストを編集する必要があります

  4. その前にJTable チュートリアルを読んでください

  5. 特にJTable と TableModel

于 2012-08-14T12:18:08.507 に答える