簡體   English   中英

不斷獲取jtable值的總和

[英]getting sum of jtable values continuously

我想連續從jtable獲取所有值的總和。 就像我制作了一個jtable一樣,用戶將連續放置數據,並且每當在jtable中插入新行時,都應執行一些代碼以獲取jtable的所有值的總和,然后將其設置在文本字段上。 我已經編寫了代碼,但是我沒有在那種情況下使用代碼,以便當在表中插入新行時,代碼將運行並獲取所有值的新總和並存儲在文本字段中。 因此,現在應該在哪種jtable方法中使用此代碼,以便在插入新行時執行代碼。 代碼在這里...

    int rows=productionTable.getRowCount();
    int totalBundles=0;
    int totalBoxes=0;

    //totalBundles
    for(int i=0;i<rows;i++)
    {
        totalBundles=totalBundles+Integer.parseInt(productionTable.getValueAt(i, 1)+"");

    }
    this.totalBundlesTextField.setText(totalBundles+"");
    //

    //totalBoxes
    for(int i=0;i<rows;i++)
    {
        totalBoxes=totalBoxes+Integer.parseInt(productionTable.getValueAt(i, 2)+"");

    }
    this.totalBoxesTextField.setText(totalBoxes+"");
    //

因此,現在應該在哪種jtable方法中使用此代碼,以便在插入新行時執行代碼

TableModel的數據更改時,您可以執行此操作。 因此,您可以將TableModelListener添加到表的TableModel中。 然后,當您執行以下操作時,將生成TableModelEvent

  1. 添加數據行
  2. 刪除數據行
  3. 更改現有數據的價值

在上述每種情況下,您都可以遍歷TableModel來計算新值。

查看JTable-> TableModeListener以獲得使用TableModelListener的簡單示例。

上面的方法假定您的模型中沒有太多數據,因為每次更改時它都會重新計算值。

如果您有很多數據,這不是很有效,那么您可能希望將TableModel中的值保持連續運行。 因此,您需要自定義TableModel以保留總數。 然后在setValueAt(...),insertRow(...),removeRow(...)之類的方法中,您需要添加邏輯以在更新模型時更新總數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM