java - 更新 JTable

标签 java swing jtable defaulttablemodel

我没有什么困惑。我正在尝试更新 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);

在此阶段,我只能看到包含行名称的表格框架,但看不到数据。请问有什么帮助吗?

最佳答案

data 只是本地数据,不包含在表模型中。您需要使用:

tableModel.setValue(result[0], 0, 0);

关于java - 更新 JTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11952014/

相关文章:

java - 如何在 Java 中对文件中的数据进行排序?

java - JTable组合框

java - 为什么我的图像没有添加到我的 JButton 中?

java - 如何在 Java 8 中间接运行方法引用?

java - Gradle:具有不同源和目标兼容性的多项目

java - 与 Jackson 通过 Socket 进行 Json

java - 无论如何要控制 Swing 中的顺序事件触发

javascript - jquery jtable 中的分页显示 1 2 3 NAN NAN 4

java - org.jdesktop.swingbinding.JTableBinding$BindingTableModel 无法转换为 javax.swing.table.DefaultTableModel

Java 表模型 : Adding a row dynamically by clicking on the last row