java - 删除行后 JTable 不刷新

标签 java swing jtable

我的 Jtable 位于 ScrollPane 内,而 ScrollPane 又位于 Panel 内。所以每当我使用删除一行时

model.removeRow(row_number);

它确实删除了行(通过调用 model.getRowCount() 进行验证),但 View 保持不变。

public void createTable(){
    model = new DefaultTableModel(rowData, columnNames);
    table = new JTable(model);

    table = new JTable(rowData, columnNames);
    table.setEnabled(false);
    table.setShowVerticalLines(false);
    scrollPane_2 = new JScrollPane(table);
    scrollPane_2.setBounds(10, 16, 554, 89);
    scrollPane_2.setBorder(BorderFactory.createEmptyBorder());
    panel_6.add(scrollPane_2);

}

我已经在所有三个面板(面板、表格和滚动 Pane )上尝试了 revalidate()、repaint()

model.fireTableDataChanged();

但 View 仍然没有改变...

最佳答案

当您重新分配变量 table 时,您将根据您的 model 丢弃 JTable

table = new JTable(model);

table = new JTable(rowData, columnNames);

当您从 model 中删除该行时,您显示的 JTable 永远不会听说它,因为它有自己的模型。

关于java - 删除行后 JTable 不刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35781687/

相关文章:

java - 如何在没有IDE的情况下导入SwingX

java - 重新利用 JFileChooser

java - 调用 treeNodesInserted 后,TreeModel 的自定义实现拒绝重新绘制

multithreading - 事件调度线程绘画

java - JTable 细胞监听器?

java - 如何将变量的全部内容发送/导出到文本文件/xml 文件/剪贴板?

java - 服务器自动发现节点的算法?

java - 给定 inDigits 的基础否定

java - 表格单元格编辑器问题

java - JTable:双击应保留先前的选择