2013-04-23 54 views
0

現在我有了一個JTable,只要按下按鈕,它就會顯示我創建的MySql數據庫中的項目名稱和項目價格。我遇到的問題是保持表中存在的項目價格的總計。在JTable中計算值

enter code here private void waterbuttonActionPerformed(java.awt.event.ActionEvent evt) {            
    // TODO add your handling code here: 
    try{ 
    st = connection.createStatement(); 
    String query; 
    query = "SELECT itemName, itemPrice FROM item WHERE itemID = '11111'"; 
    String itemName = " ",itemPrice =" "; 

     ResultSet rs = st.executeQuery(query); 

     if(rs != null){ 
     while(rs.next()) 
     { 
     itemName = rs.getString(1); 
     itemPrice = rs.getString(2); 
     } 
     model.addRow(new Object[]{itemName, itemPrice}); 

     } 
     String holder = model.getValueAt(WIDTH, 1).toString(); 
     total += Double.parseDouble(holder); 
     System.out.println(total); 
     } catch (SQLException | NumberFormatException | ArrayIndexOutOfBoundsException ex) {} 

變量「total」是一個全局double,變量「model」是一個DefualTableModel。 我在正確的軌道上獲得這個跑步總數還是應該嘗試一種完全不同的方法?請大家幫忙,我正要結束。

+3

是不是'itemPrice'數字類型?爲什麼'getString'?不應該'addRow'和'total'在循環中?請修改您的問題以包含[sscce](http://sscce.org/)。 – trashgod 2013-04-23 01:58:42

+1

WIDTH是什麼?這是否會改變或者它是一個硬編碼的常量?此外,爲什麼不只是將itemPrice添加到總數中,而不是從模型中讀回。 – sreejit 2013-04-23 07:30:54

回答

0

使用一個循環計算total

int row; 
    for(row= 0; row<=model.getRowCount(); row++){ 
    String holder = model.getValueAt(row, 1).toString(); // I do not know why you are writing WIDTH here. 

    total += Double.parseDouble(holder); 
    System.out.println(total); 
    }