最近在做一个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);