关于javaswing table的数据动态更新

  一直用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();

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

  

posted @ 2017-03-13 21:46  白夜梦想家  阅读(1291)  评论(0编辑  收藏  举报