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);
}
添加回答
举报