2017-06-20 61 views
0

我有一個我想從中計算成本的TableView。我的TableView中的數據來自數據庫(數據庫 - > ObservableList - > TableView)。JavaFX如何計算TableView中的選擇行

我能計算出總成本用下面的代碼:

public static int calculateTotalCost(){ 
    total = 0; 
    for(Items i : itemTable.getItems()){ 
     total += i.getCost(); 
    } 
    return total; 
} 

然而,假設我要篩選的表,以便從具體項目名稱只計算...所以我輸入,例如,一個項目名稱,只有那些出現。然後根據剩下的名字,我只計算這些項目的總成本......我如何才能最好地解決這個問題?

(一種選擇,我發現迄今:排序列表+ FilteredList ......很抱歉,如果福利局的問題,但我只是使用JavaFX玩弄的第一次...)

+1

你找到的選項有什麼問題? –

+0

它沒有錯 - 它的工作原理。就像我剛開始熟悉JavaFX一樣,我想知道是否有其他選擇? – purpleman

+0

如果你只想過濾計算,顯然你可以在代碼中的'for'循環裏放一個'if'語句。如果你只想在表中出現匹配的項目,那麼這就是'FilteredList'功能的設計目的。很明顯,你可以很容易地寫出自己的想法,但是既然已經寫出了你爲什麼要重新發明輪子? –

回答

0

改變你的代碼

public static int calculateTotalCost(){ 
    total = 0; 
    for(Items i : table.getSelectionModel().getSelectedItems()){ 
     total += i.getCost(); 
    } 
    return total; 
} 

上面的代碼只是計算TableView中選定行的總成本。請確保通過table.getSelectionModel()。setSelectionMode(SelectionMode.MULTIPLE)將TableView設置爲多選模式,在選擇某些行後,運行上面的代碼以計算總成本。