TableView - Row delete

Hallo,

ich habe in einer Liste Namen in der die Namen von Personen genannt sind. Ebenso werden diese Personen in einer TabelView dargestellt.
Ich möchte nun die Personen der Liste aus der TabelView entfernen (löschen).

Ich finde aber keinen Weg um aus den Namen der Liste den Index der ObserverableList zu erhalten.
Mein letzer Gedanke anbei…leider

for (int i = 0; i<list.size();i++) {
     String listItem = list.get**;

     TableView.TableViewSelectionModel sm = table1.getSelectionModel();
     sm.select(list.get(i));
     
     myObserverableList.remove(sm.getSelectedIndex());
}

Danke

GGK

ohne JavaFX-Gebrauch-Kenntnisse von außen geschaut:
eine https://docs.oracle.com/javase/8/javafx/api/javafx/collections/ObservableList.html
scheint eine normale Liste zu sein, also remove(String) möglich, außerdem indexOf() falls du unbedingt den Index möchtest?

das SelectionModel muss intern sicher auch erst suchen, wenn du dort selektierst,
generell ist das immer etwas Sucharbeit wenn man aus einer Liste beliebige Elemente entfernen möchte

//        if (getItemCount() <= 0) return;
        if (obj == null && getSelectionMode() == SelectionMode.SINGLE) {
            clearSelection();
            return;
        }

        // We have no option but to iterate through the model and select the
        // first occurrence of the given object. Once we find the first one, we
        // don't proceed to select any others.
        Object rowObj = null;
        for (int i = 0, max = getItemCount(); i < max; i++) {
            rowObj = getModelItem(i);
[..]

GC: MultipleSelectionModelBase - javafx.scene.control.MultipleSelectionModelBase (.java) - GrepCode Class Source

Danke dir…da war ich wohl blind…

TableView.TableViewSelectionModel sm = table.getSelectionModel();
for (int i = 0; i<list.size();i++) {
         
     sm.select(i);
     int indexOrigTableList = origTableList.indexOf(table.getSelectionModel().getSelectedItem());
    
}

was ist das nun für ein Konstrukt?
was in der Liste drin ist spielt keine Rolle mehr:
wenn 10 beliebige Elemente, dann Index 0 bis 9 im SelectionModel ausgewählt und die Elemente an dieser Position gelöscht oder zumindest deren Index bestimmt?

falls Löschen, bedenke dabei auch evtl. Verschiebungen:
angenommen, in der Table stehen am Anfang 0=a, 1=b, 2=c, 3=d,
dann wird zunächst evtl. Index 0= a gelöscht,
danach Index 1 selektiert, aber das ist nun nicht mehr b, sondern c, weil b inzwischen auf Index 0 aufgerückt ist?

fragwürdig fragwürdig alles…


ich hatte eher

for (Object o : list) {
     int indexOrigTableList = origTableList.indexOf(o); 
}

im Sinn, oder gleich remove-Aufruf mit o