首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DefaultTableModel不刷新

DefaultTableModel不刷新
EN

Stack Overflow用户
提问于 2012-05-02 17:33:08
回答 3查看 1.8K关注 0票数 2

在数据库中输入新数据后,我的JTable不会刷新。我需要终止并再次执行才能看到结果。我已经包括了DefaultTableModel和fireTableDataChanged。我还错过了什么?谢谢!

代码语言:javascript
复制
{
    columnNames = new Vector();
    data = new Vector(); 

    try{
        //database stuffs
    }

    catch{
    }  


    DefaultTableModel tm = new DefaultTableModel(); 
    JTable table = new JTable (tm); 
    JScrollPane scrollPane  = new JScrollPane(table);

    table = new JTable(data,columnNames)            
    {               
        public boolean isCellEditable(int row, int column){
            return false;
        }        

            public void newDataAvailable (TableModelEvent e){
            }
    };      

    scrollPane = new JScrollPane(table);            
    scrollPane.setBounds(33, 47, 256, 228);      
    panel.add(scrollPane);          

}

我可以创建一个'Refresh Button‘并刷新这些值吗?

EN

回答 3

Stack Overflow用户

发布于 2012-05-02 19:37:55

您不应该显式地调用fireTableDataChanged()DefaultTableModel会在您更新模型时自动执行此操作,如下面的相关example所示。

票数 2
EN

Stack Overflow用户

发布于 2012-05-02 19:57:49

您可以创建新的JTable实例。只创建一次,并仅将新模型设置为现有的JTable (正确添加到容器中)。

票数 2
EN

Stack Overflow用户

发布于 2015-01-12 16:54:38

  1. 我创建了一个新项目,因为我选择了一个新框架,并将一个表、一个标签、一个文本字段和一个按钮从swing控件拖到您的框架中。

2.在后端…中创建表

  1. 从此链接

下载rs2xml jar文件

Download rs2xml.jar

  1. 将其添加到项目库…中

右键单击项目>属性>库>添加jar /文件夹>选择jar> ok

5.然后使用以下代码连接mysql

代码语言:javascript
复制
public class DBConnect {

Connection connection = null;

public Connection getConnection() {
    try {
        Class.forName("com.mysql.jdbc.Driver");
        connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "");
        System.out.println("connection successfully");
    } catch (Exception ex) {
        ex.printStackTrace();
    }
    return connection;
}
}

  1. 使用以下代码调用页面中的函数

statement=con.getConnection().createStatement();;con=new DBConnect();

7.然后使用以下代码…创建一个更新函数

代码语言:javascript
复制
void update_table() throws SQLException{
    rs=statement.executeQuery("select * from details");
    jTable1.setModel(DbUtils.resultSetToTableModel(rs));
}

8.在按钮的action事件中,键入以下内容并调用update函数

代码语言:javascript
复制
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         

   try {
       Object name=jTextField1.getText();
       String sql="insert into details (name) values('"+name+"')";
        int  resultset=statement.executeUpdate(sql);
        update_table();
   } catch (SQLException ex) {
       Logger.getLogger(update.class.getName()).log(Level.SEVERE, null, ex);
   }

}

9.然后运行项目…

你也可以遵循这个教程:--

How to refresh JTable after insert delete or update the data in java Netbeans ID

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10411112

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档