方案:
JTable中包含以下數據,我試圖來形容我想在下面的圖片做: - JTable中錯誤的列求和值
所以,我想我能夠解釋我在這裏想要達到的目標。
問題 不顯示準確的結果(總和),ofcourse。我已經使用的代碼是:
public void docTotal_Income(){
try{
int totC=8,xC=3,lC=4,eC=5, sC=6; // totC is the last column, xC-3rd, lC-4th and so on...
for(int i=0;i<(easypath.doctorBusiness_table.getRowCount());i++){ // "easypath.doctorBusiness_table" is the table name
sumTot += Double.parseDouble(easypath.doctorBusiness_table.getModel().getValueAt(i, totC).toString());
sumTotx += Double.parseDouble(easypath.doctorBusiness_table.getModel().getValueAt(i, xC).toString());
sumTotl += Double.parseDouble(easypath.doctorBusiness_table.getModel().getValueAt(i, lC).toString());
sumTote += Double.parseDouble(easypath.doctorBusiness_table.getModel().getValueAt(i, eC).toString());
sumTots += Double.parseDouble(easypath.doctorBusiness_table.getModel().getValueAt(i, sC).toString());
}
easypath.totalEarnt_docBus_tf.setText(String.valueOf(sumTot));
easypath.xTotIncome_tf.setText(String.valueOf(sumTotx));
easypath.lTotIncome_tf.setText(String.valueOf(sumTotl));
easypath.eTotIncome_tf.setText(String.valueOf(sumTote));
easypath.sTotIncome_tf.setText(String.valueOf(sumTots));
sumTot = 0; // public static
sumTotx = 0; // values globally
sumTotl = 0; // declared
sumTote = 0; // and
sumTots = 0; // initialised 0
}
catch(Exception ex){
ex.printStackTrace();
JOptionPane.showMessageDialog(null, "Error in totalling income");
}
}
我與Document Listener
煉JTable
後調用該方法docTotal_Income()
(工作正常),最後射擊的JButton
的eventListener
。
private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {
new doctor().docTotal_Income(); // doctor is the class
}
畢竟這些我得到不規則的總和。我猜測我在某個地方出現了邏輯錯誤,但是我還有其他什麼東西丟失了嗎?
我很樂意欣賞這方面的任何建議。謝謝你的時間
什麼是「非正規求和」?你的總分是0.01嗎?減去1,000,000?總數是[NaN](http://docs.oracle.com/javase/8/docs/api/java/lang/Double.html#NaN)?無窮? – VGR
不規則並不意味着大小或以往的任何錯誤。我試圖解釋它給出了錯誤的求和,5 + 5 = 20等等......我認爲這是我的一個**邏輯錯誤**,但我無法指出它,所以把整個場景放入這個訂單 – mustangDC
把數字放到XxxTableModel中,覆蓋模型定義裏面的getColumnClass – mKorbel