在我的应用程序中,我添加了一个JTabel并使用setCellRender方法,我按如下方式向表中添加一个按钮列。
jTable1 = new JTable();
String[] columnNames = {"Module", "Status", "Connectivity", "Action", "Start Time", "Logs"};
data = getServerExecutions();
model = new DefaultTableModel(data, columnNames) {
@Override
public boolean isCellEditable(int row, int col) {
return true;
}
};
jTable1.setModel(model);
jTable1.getColumn("Action").setCellRenderer(new ButtonRenderer());
jTable1.getColumn("Action").setCellEditor(new ButtonEditor(new JCheckBox()));
getSeverExecution方法从数据库表加载数据。 当我点击Action按钮数据库得到更新没有任何问题。 窗口中还有一个“刷新”按钮。在执行的操作方法中,我将数据重新分配给variabel数据并刷新表。
public void actionPerformed(ActionEvent e) {
data = getServerExecutions();
model.fireTableDataChanged();
}
但不重新加载表格数据。只有当我关闭并打开窗口时才会更新。这有什么不对?有人可以帮助我..
答案 0 :(得分:2)
这一行:
data = getServerExecutions();
不设置表中的数据。它只是将数据变量设置为指向新数据。您需要更新TableModel
。要做到这一点:
看到你每次都重新创建数据,我只想选择第二种选择。