删除行后JTable不刷新

Jer*_*rry 0 java swing jtable

我把我的Jtable放在ScrollPane中,而ScrollPane又放在Panel里面.所以每当我删除一行时使用

model.removeRow(row_number);
Run Code Online (Sandbox Code Playgroud)

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

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

}
Run Code Online (Sandbox Code Playgroud)

我在所有三个(面板,表格和滚动窗格)上都尝试了revalidate(),repaint()

model.fireTableDataChanged();
Run Code Online (Sandbox Code Playgroud)

但是观点仍然没有改变......

bra*_*mus 5

当您重新分配变量时,您将丢弃JTable基于您model的内容table.

table = new JTable(model);

table = new JTable(rowData, columnNames);
Run Code Online (Sandbox Code Playgroud)

当您从中删除行时model,JTable您显示的内容从不会听到它,因为它有自己的模型.