[英]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
:
在上述每種情況下,您都可以遍歷TableModel
來計算新值。
查看JTable-> TableModeListener以獲得使用TableModelListener
的簡單示例。
上面的方法假定您的模型中沒有太多數據,因為每次更改時它都會重新計算值。
如果您有很多數據,這不是很有效,那么您可能希望將TableModel中的值保持連續運行。 因此,您需要自定義TableModel以保留總數。 然后在setValueAt(...),insertRow(...),removeRow(...)之類的方法中,您需要添加邏輯以在更新模型時更新總數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.