2016-04-23 9 views
0

Ich bin neu in Java und JavaFX und ich versuche es zu überprüfen, es gibt ein Duplikat in einem Tableview, und wenn das der Fall ist, würde ich es gerne durch einen neuen Satz ersetzen Daten.javafx ersetzt eine Zeile in TableView durch eine generierte Zeichenfolge

Also im Wesentlichen versuche ich, die Daten in meinem TableView zu durchlaufen und es mit etwas zu vergleichen. Um genauer zu sein, würde ich gerne einen Wert der Zeichenfolge in der ersten Spalte zu einer neuen Zeichenfolge hinzufügen. Ich habe einige Nachforschungen angestellt und festgestellt, dass die gebräuchlichste Lösung für das Filtern von Daten die Verwendung eines FilteredList ist, aber das liefert nicht meine ursprüngliche Menge von Elementen.

meine aktuellen Code wie folgt aussieht:

@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) 
     } 
    } 

Hinweis: The Stable ist eine Klasse, die die Getter und Setter alle für jede der Spalten hat, ich habe auch die CellFactory einrichten.

Jede Anleitung, wie dies zu tun wäre, wäre toll!

Antwort

0

Im Grunde müssen Sie nur Ihre Datenelemente durchlaufen und den Wert, der den Inhalt von Spalte 1 darstellt, mit Ihrer neuen Zeichenfolge vergleichen. Sind beide Werte gleich sind, können Sie den Wert in Ihrem Datenmodell aktualisieren:

(I mit YourData STable ersetzt, weil ich den Namen für ein Datenmodell ein wenig verwirrend finden)

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

Oder wenn Sie ersetzen möchten die Reihe:

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

Vielen Dank So viel! Funktioniert wie ein Wunder! –

Verwandte Themen