java - 更新内容时重新创建 JTable

标签 java swing jdbc jtable tablemodel

我有一个使用 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/

相关文章:

java - Xtext - 内容提案匹配上下文缩进

c# - winforms 面板与 java swing 面板

java - JTextField 和 HTML 标签

java - 从java插入查询到mysql数据库不工作

java - 如何从jdbc连接中知道客户端ip端口

database - Oracle 11g JDBC 预取键

java - 无法取消异步任务执行

java - 如何解决android studio中隐藏标题栏的问题?

java - 无法在 org.junit.runner 中找到/导入 Runwith 类?

java - 如何获取鼠标单击相对于 Swing 窗口的位置