2017-06-20 11 views
0

私はコストを計算したいTableViewを持っています。私のTableView内のデータはデータベースからのものです(データベース - > ObservableList - > TableView)。 、...JavaFX TableViewで選択行を計算する方法

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

、のは、私は特定の項目名だけから計算するようにテーブルをフィルタ処理したいとしましょうだから私はタイプ入力:

は、私は次のコードで総費用を計算することができています項目名などの項目名のみが表示されます。残りの名前に基づいて、それらのアイテムの合計コストのみを計算します...これにはどのように最善にアプローチしますか?

(私がこれまでに見つかったオプション:SortedListの+ 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をマルチ選択モードに設定してください。いくつかの行を選択した後、上のコードを実行して合計コストを計算します。

関連する問題