亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將由于控制結構類型而導致的代碼復雜性逐行計數到表視圖中

將由于控制結構類型而導致的代碼復雜性逐行計數到表視圖中

MMTTMM 2023-08-04 14:43:14
我已經使用 netbeans IDE 使用 java swing 開發了一個桌面應用程序。其目的是衡量由于控制結構類型而導致的程序語句的復雜性。對于帶有“if”、“for”、“while”和“catch”的程序語句,分別分配權重1、2、2和1。另外,為具有“n”個情況的“switch”語句的程序語句分配權重“n”。所有其他語句的權重均為零。我已經實現了上述問題的解決方案,并且我需要以表格格式演示“每個程序語句”的復雜性。為此,我使用了 jTable,其列名稱為“行號”、“程序語句”和“復雜度計數”。雖然我已經計算了復雜性的總數,但我不知道如何逐行獲取計數并將其顯示在 jTable 中。應根據每個行號和語句顯示與每個程序語句相關的復雜性計數。這是我的代碼。 https://github.com/nirmaniPathiranage/Complexity-measuring-tool/blob/master/src/spm/FilesDemo.java我已經實現了從733行開始加載表數據的功能。(在 jButton11 上執行的操作)。private void jButton11ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton11ActionPerformed{}我期望在表視圖中輸出每個程序語句針對每個行號和程序語句的復雜性。我似乎無法弄清楚這一點。任何幫助,將不勝感激。
查看完整描述

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);

}


查看完整回答
反對 回復 2023-08-04
  • 1 回答
  • 0 關注
  • 117 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號