java - 更改数据后刷新 JTable

标签 java swing netbeans jtable

我想在用户按下按钮后刷新并显示我的 JTable。在此之前,该按钮会生成一个 Object[][],其中保存了来自表的过滤数据。 过滤后的数据仅行数不同。

我正在使用 netbeans UI 创建器,我可以用数据填充表的唯一方法是定义 abstractTableModel。 这是我的 abstractTableModel 的代码:

class myTable extends AbstractTableModel{
    private String[] stolpci = {"Kategorija","Podkategorija","Opis","Cena","Datum","Boni"};
    private Object[][] data = PregledovalnikGUI.vrniTabelo(); /*PregledovalnikGUI.vrniTabelo() returns a value in form of Object[][] in which the data is held*/
    public int getColumnCount() {
        return stolpci.length;
    }
    public int getRowCount() {
        return vrstice.length;
    }
    public String getColumnName(int col) {
        return stolpci[col];
    }
    public Object getValueAt(int row, int col) {
        return vrstice[row][col];
    }
    public Class getColumnClass(int c) {
        return getValueAt(0, c).getClass();
    }
    public void setValueAt(Object value, int row, int col) {
        vrstice[row][col] = value;
        fireTableCellUpdated(row, col);
    }

jTable 设置如下:

Tabela.setModel(new myTable());

我需要定义哪些方法来让表在运行时刷新?

最佳答案

myTable 中,您可以有一个名为 refresh() 的方法,类似这样

public void refresh(Object[][] objects){
    //make the changes to the table, then call fireTableChanged
    fireTableChanged(null);
}

然后在按钮监听器中,调用上面的方法:

Tablea.refresh(objects);//objects stores your filtered data

关于java - 更改数据后刷新 JTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19952870/

相关文章:

Java Spark 溢出内存映射 OutOfMemoryError 错误

java - Jenkins [错误] 此环境中未提供编译器

未从 Java Web 应用程序接收短信

java - 这个程序的运行时复杂度是多少?(尤其是 retainAll() 方法)

java - 默认单元格编辑器类查询?

java - 服务器-客户端 Java 分布式应用程序

eclipse - 在 IDE 中运行 Vertx

java - 如何制作 JFrame/JPanel "Modal",以便在关闭窗口或按下按钮之前不会继续输入?

ruby-on-rails - Netbeans/Ruby - 无关(?)自动完成信息

grails - 如何在带有https(ssl)的Netbeans(8.0)中运行grails?