我有一个使用 JTable 的应用程序。当我向数据库添加一些内容时,它会进入数据库,但我无法以某种方式重新创建 JTable。我尝试了 repaint();创建我的表的方法我已经尝试过 Revalidate();但也没有成功
我什至试图记忆该方法,但也没有帮助。
执行的操作如下:
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource() == add) {
model.insertValue(toDo.getText());
model.getValue();
view.createTable();
toDo.setText("");
}
}
以及创建JTable的方法
public void createTable() {
JTable table = new JTable();
DefaultTableModel tableModel = new DefaultTableModel(new Object[][]{},new String[]{"To do","Date added", "Modify"});
table.setSize(450, 600);
table.setModel(tableModel);
JScrollPane scrlPan=new JScrollPane(table);
for(int i = 0; i < model.getId().size(); i++) {
tableModel.addRow(new Object[]{
model.getItem().get(i),
model.getDate().get(i),
model.getId().get(i)
});
}
add(scrlPan);
add(table.getTableHeader(), BorderLayout.NORTH);
add(table, BorderLayout.CENTER);
}
关于如何解决这个问题有什么想法吗?
最佳答案
不要重新发明轮子,搜索
ResultSetTableModel(很少的代码解决方法)
或 TableFromDatabase由@camickr
制作
上午解决方法是
EDT 敏感
、JTables
内容等待ResultSet
返回所有行、Swing GUI
卡住或不负责对于键和鼠标事件
,直到完成又长又硬的对象
(JDBC),此逻辑可能适用于小型的小型
,无需打开和关闭结果集
数据库表连接到数据库
,否则必须使用SwingWorker
和批处理逻辑
(例如更新具有 20 行的 XxxTableModel
)
关于java - 更新内容时重新创建 JTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14236039/