2016-04-23 3 views
0

JavaとJavaFXの新機能Imとそれをチェックしようとすると、Tableviewに重複があります。その場合は新しいセットに置き換えますデータ。javafxが生成された文字列からTableViewの行を置換する

本質的に私は自分のTableViewのデータを繰り返し処理して何かと比較しようとしています。より正確には、最初の列のStringの値を新しいStringに変換したいと思います。私はいくつかの調査を行い、Filtering Dataの最も一般的なソリューションはFilteredListを使用していますが、これは元のアイテムセットを返さないことがわかりました。

私の現在のコードは次のようになります。

@FXML private TableView<STable> TableV; 
public void Replace(String s){ 
    ObservableList<STable> getCurrentData; 
    for(int i = 0; i < getCurrentData.size(); i++){ 
     // Here is where I get Stuck I've tried: 
     //TableV.getSelectionModel().getSelectedItem().getCajas(); 
     //getCurrentData.get(i) 
     } 
    } 

注:安定した列ごとにすべてのセッターとゲッターを持つクラスですが、私はまた、設定CellFactoryを持っています。

これを行う方法に関するガイダンスは素晴らしいと思います!

答えて

0

基本的には、データ項目を繰り返し処理し、列1の内容を表す値を新しい文字列と比較するだけで済みます。両方の値が等しい場合、あなたはあなたのデータモデルに値を更新します。

を(私は少し紛らわしいデータモデルの名前を見つけるので、私は、YourDataで安定した置き換え)

for (YourData data : tableView.getItems()) { 
    if (data.getColumOne().equals(textToCompare)) { 
     data.setColumnOne("newText"); 
    } 
} 

または交換したい場合行:

for (int idx = 0; idx < tableView.getItems().size(); idx++) { 
    YourData data = tableView.getItems().get(idx); 
    if (data.getColumnOne().equals(textToCompare)) { 
     tableView.getItems().set(idx, someOtherData); 
     return; 
    } 
} 
+0

ありがとうございます!不思議のように動作します! –

関連する問題