最近在做一个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为要向其中输入的结果类型 @Override public int getRowCount() { return listData.size();//行数为list的大小 } @Override public int getColumnCount() { return 5;//5列 } @Override public String getColumnName(int column) { //根据实际情况返回列名"样本编号","项目名称", "项目结果", "项目单位","参考范围" if (column == 0) return "样本编号"; else if (column == 1) return "项目名称"; else if (column == 2) return "项目结果"; else if (column == 3) return "项目单位"; else return "参考范围"; } //将每一列赋予对应的list中的值 @Override public 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(); else return 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);