2013-04-16 74 views
1

我有一個JTable,我想添加列值。我正在嘗試以下代碼:我應該如何正確計算JTable列值中的值?

try{ 
    double t = 0.00; 
    DecimalFormat df = new DecimalFormat("0.00"); 
    int rows = empTbl.getRowCount(); 
    for(int row =0; row<=rows; row++) 
    { 
     String am = (String) empTbl.getValueAt(row, 7); 
     double d = (double) df.parse(am); 
     double ans = d+t; 
     jLabel7.setText("Total Sale : "+ans); 
    } 
} 
catch(ParseException ex){ } 

爲什麼此代碼無法正常工作?

+0

雙ANS = d + T,T似乎是0.0總是。你得到的是什麼? –

+4

*「爲什麼這段代碼無法工作?」*將catch(ParseException ex){}'改爲catch(ParseException ex){ex.printStackTrace(); }'然後再試一次。 **請勿忽略例外。** –

回答

3
  • 要儘量避免在Java中任何解析,有正確的數據類型

  • 雙人/長/整型值添加到XxxTableModel或JTable的直接(依賴的不明代碼,您的問題)

  • 變化的getColumnClass在XxxTableModel到雙/長/整型

  • 添加TableModelListener並重寫setValueAt(正確式),然後,以允許如果式在JTable中單元格的值改變

  • Double/Float hasn't decimal places (Idiotic thread, with interesting!!! downvoters)

  • 使用XxxTableCellRenderer用於格式化輸出到擺動GUI

+2

+1使用正確的數據類型。此外,DecimalFormat應該由渲染器使用。有關示例,請參見[Table Format Renderer](http://tips4java.wordpress.com/2008/10/11/table-format-renderers/)。 – camickr