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