有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在动作监听事件上刷新jtable的内容?

我使用以下代码在现有对话框的新面板中显示jtable。我为表模型使用了mytablemodel类,setmodel方法与构造函数类似(因为我必须使用同一个模型对象创建多个表,所以我使用方法而不是构造函数)。但是我的jtable并没有改变actionlisten上的内容。。即使输入的值发生变化,也会重复相同的内容。。。请帮忙

 btnShow.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent arg0) {
         showTable();

        }

    });
    panel_1.add(btnShow);

private void showTable() {
     fillData();
    //filldata used to fill object data for table using date specified by user                   


                MyTableModel model=new MyTableModel();
                model.setModel(data,col,totalrow);
                table = new JTable(model);
                table.setForeground(new Color(255,0,0) );
                System.out.println("after table");
                panel_2.add(new JScrollPane(table));
                panel_2.setVisible(true);
                table.setVisible(true);
                System.out.println("after scroll pane");

 }

共 (1) 个答案

  1. # 1 楼答案

    不要每次都创建一个新的JTable。取而代之的是,获取模型并替换/编辑数据(最佳),或者给表格一个新模型(“确定”)

    模型的数据更改后,需要调用“fireTableXXX”方法

    你可以打电话。fireTableDataChanged()将重新加载所有数据。还有一些方法可以指定更改了哪些行或单元格,这样就不必重新加载所有行或单元格