1 回答

TA貢獻1853條經驗 獲得超9個贊
我在實現 jTable 來顯示程序中每一行的復雜性時看到的一個可能的問題是事先不知道行數。但這也可以通過使用ArrayList<> 和TableModel的簡單方法輕松解決,如下所示。
//Names of the columns
String columns[] = {"Line no","Program statement","Complexity count"};
//Table model, initiate with 0 columns
DefaultTableModel tableModel = new DefaultTableModel(columns, 0);
JTable table = new JTable(tableModel);
為了讓事情更清楚,實現一個 POJO 類以在表行中顯示內容將是理想的選擇。
public class TableRow {
private int lineNo;
private String statement;
private int cmplxCount;
//You may implement the getters and setters as well
}
當程序迭代每一行計算復雜性時,請確保創建一個新的TableRow對象和必要的數據并將它們添加到ArrayList
ArrayList<TableRow> list = new ArrayList<TableRow>();
//Create an object each time a line is iterated for complexity calculations.
TableRow newRow = new TableRow(4,"for-loop",1);
list.add(newRow);
迭代結束后,將ArrayList中的數據添加到Object數組中,并將它們傳遞給jTable。
for (int i = 0; i < list.size(); i++){
int lineNo= list.get(i).getLineNo();
String statment = list.get(i).getStatement();
int cmplxCount= list.get(i).getCmplxCount();
Object[] data = {lineNo, statement , cmplxCount};
tableModel.add(data);
}
添加回答
舉報