我有点困惑。我正在尝试更新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);
在这个阶段,我只能看到包含行名的表格框架,但没有数据。有什么帮助吗?
答案 0 :(得分:3)
data
只是表模型中未包含的本地数据。你需要使用:
答案 1 :(得分:2)
所有fireXxxXxx
事件已{0}已正确实施
基于DefaultTableModel
的JTable和更新ModelToView或ViewToModel没有任何问题,没有限制,
必须使用SSCCE
之前阅读JTable tutorial