最近在做一个Java的单机程序,所以用了下JFrame用来做Java自己的页面,这是写的一个向JTable输入List类型的数据,
import javax.swing.table.AbstractTableModel;import java.util.ArrayList;import java.util.List;
public class TableDataVO extends AbstractTableModel {List<ResultVO> listData = new ArrayList<ResultVO>();//ResultVO为要向其中输入的结果类型@Overridepublic int getRowCount() {return listData.size();//行数为list的大小}@Overridepublic int getColumnCount() {return 5;//5列}@Overridepublic String getColumnName(int column) {//根据实际情况返回列名"样本编号","项目名称", "项目结果", "项目单位","参考范围"if (column == 0)return "样本编号";else if (column == 1)return "项目名称";else if (column == 2)return "项目结果";else if (column == 3)return "项目单位";elsereturn "参考范围";}//将每一列赋予对应的list中的值@Overridepublic Object getValueAt(int rowIndex, int columnIndex) {ResultVO result = listData.get(rowIndex);if (columnIndex == 0)return result.getBarcode();else if (columnIndex == 1)return result.getItemName();else if (columnIndex == 2)return result.getItemResult();else if (columnIndex == 3)return result.getItemUnit();elsereturn result.getReferenceRanges();}public void setData(List<ResultVO> data) {if (data == null)throw new IllegalArgumentException("数据不能为空。");this.listData = data;fireTableDataChanged();//刷新表格显示数据}}
在主页面中调用:
TableDataVO tableData = new TableDataVO();tableData.setData(rData);table = new JTable(tableData);