java - 如何刷新 JTable 中的数据并显示更新的列表

标签 java swing jtable

我是java新手,正在尝试刷新jTable。我想做的是显示 Jtable 中的数据列表,现在我确实有一个刷新图标,如果我单击该图标,它会刷新表并更新其中的记录。 我尝试了很多事情但没有成功。我所尝试过的是:

//引用。从中获得帮助:

尝试1:

private void remakeData(CollectionType< Objects > name) {
    model.setRowCount(0);
    for (CollectionType Objects : name){
    String n = Object.getName();
    String e = Object.getEmail();
    model.insertRow(model.getRowCount(),new Object[] { n,e });
    }}

尝试2:

tableModel.fireTableDataChanged();

尝试3:

list_asset.invalidate();  // list_asset is my jTable
list_asset.repaint();

尝试4:

((AbstractTableModel) list_asset.getModel()).fireTableCellUpdated(data.size(), 0);

尝试5:

jPanel1.revalidate();
jPanel1.repaint();
tableModel.setRowCount(0);
tableModel = new DefaultTableModel(data,columnNames); 
list_asset.setModel(tableModel);

我尝试了很多东西,在谷歌或 Stackoverflow 上搜索时只发现了这些我已经尝试过的东西。

请帮助我实现这一目标。

谢谢

最佳答案

DefaultTableModel 将通知其监听器发生更改,任何监听表都会更新自身作为响应。如果您的第一次尝试不起作用,则问题出在其他地方。特别是,您不需要自己使任何表模型事件失效、重新生效或触发。在此完整exampleAdd Row 按钮调用 addRow(),它将请求转发到 TableModel

private DefaultTableModel dtm = new DefaultTableModel(…) {…}

private void addRow() {
    dtm.addRow(new Object[]{
        …
    });

}

image

关于java - 如何刷新 JTable 中的数据并显示更新的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25337389/

相关文章:

java - 在 JFrame 内扩展 JTable

java - 显示动态变化的 JTable 中选定行的值

java - Swing JTable 布局 : how to make table occupy complete viewport - like in eclipse IDE

java - 如果我修改类的静态变量,它是否会被该类的先前实例共享?

linux - 如何使我的 Boot.java 类作为 main 类始终位于我有其他进程导致 Java 出现问题的地方?

java - Android 图标像素化/模糊

java - 如何将 pre-wrap 与 swing HTML 文本一起使用?

java - POST JSON 请求中的字符编码

java - JFrame 中的 JPanel 派生类 - 绘制重复项

java - 根据 Jtextfield 输入从 Jtable 中选择一行