关于javaswing table的数据动态更新

时间:2021-12-22 16:07:57

  一直用web写程序,最近有同学交我帮忙写个java软件,写前端时用了swing,发现swing里面的小细节非常多,比如列表,表格的动态更新什么的,细节很重要,一个不小心整个界面都崩溃,显示不出来。

  由于我写的软件需要定时刷新界面,所以需要对JTable进行实时更新,对于动态更新其实最简单的,就是用 Vector 做 table 的模型,只要改变 Vector 中的数据,updateUI,表格就刷新了。其中,第一个是个 Vector 的 Vector,是 data,就是说先把一行的 data 放在一个 Vector 里,然后把这些行Vector 放到一个总的 Vector 里,而第二个是 Vector是title。

  以下为简单的代码:

  

                Vector<String> columnNames = new Vector<String>(); //设置列名
columnNames.add("活动事项");
columnNames.add("日期");
columnNames.add("资金流动");
columnNames.add("资金流动说明");
columnNames.add("参与人员");


rowData = new Vector<String>();
Vector hang = new Vector();//设置每一行的值
hang.add("data"]);
hang.add("data[1"]);
hang.add("data[2]");
hang.add("data[3]");
hang.add("data[4]");
rowData.add(hang);//加入rowData中
defaultTableModel = new DefaultTableModel(rowData, columnNames);
table = new JTable(defaultTableModel);

      接下来我们要动态加入一条数据,代码如下:

  

                        rowData = ........方法如上,加入新的数据。
defaultTableModel.getDataVector().clear();
              defaultTableModel.setDataVector(rowData, columnNames); table.updateUI();

        这样就能动态的往表格之中添加入一条新的数据,并且显示。