java - DefaultTableModel 不刷新

标签 java swing jtable refresh defaulttablemodel

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

{
    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);          

}

我可以创建“刷新按钮”并刷新值吗?

最佳答案

您不必显式调用 fireTableDataChanged();当您更新模型时,DefaultTableModel 会自动执行此操作,如相关的 example 中所示。 .

关于java - DefaultTableModel 不刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10411112/

相关文章:

java - 无法更改 BorderLayout 中 block 的大小

java - 如何直接在表中的JComboBox中搜索

java - 仅获取聚合会导致Elasticsearch

java - 如何通过在 gradle 命令行上传递 version 属性来设置 project.version?

java - 为什么在这个简单的程序中 setBackground 不立即并一致地更新背景颜色

java - 使用 hibernate 删除对象后刷新 Jtable?

java - 如果 JTable 包含字符串,如何在 JTable 上使用 RowFilter.dateFilter

java - getContext() 不存在

java - 将输入流转换为文件

java - 图形未出现在 CardLayout 上