JavaFx - ausgewählte Rows in Arraylist (Tableview)

StepByStepButSlow

Aktives Mitglied
Einen schönen Abend miteinander,

hat jemand vielleicht eine Beispielanwendung oder einen Link zu einer solchen bereit, die mir bei meinem im Titel genannten Problem helfen kann. In meiner Tableview möchte die Daten (int) aller selektierten Rows über ein Event in eine Arraylist laden.
Eine einzige Row bekomme ich aus meiner Tableview schon heraus...

Java:
MainTableClasses mtc = table.getItems().get(table.getSelectionModel().getSelectedIndex());
        textField.setText(Integer.toString(mtc.getId()));

Entweder suche ich falsch, aber ich finde im Netz keine passende Lösung.

Vielen Dank für eure Mühen und noch einen schönen Abend.

Gruß
StepByStepButSlow
 
Hallo.

getSelectedItems auf selectionmodel
Selectionmode muss auch gesetzt werden

Oder Google nach "javafx tableview select multiple row"
Grüße
 
Hallo truesoul,

danke für deinen Tipp. Im Netz bin ich jetzt auf folgenden Code gestoßen:

Java:
ObservableList<MainTableClasses> selectedItems = table.getSelectionModel().getSelectedItems();           
            ArrayList<String> selectedIDs = new ArrayList<String>();
            for (MainTableClasses row : selectedItems) {
               selectedIDs.add(row.get(0));
            }

Bei "...(row.get(0));" bekomme ich folgende Fehlermeldung "The method get(int) is undefined for the type MainTableClasses" Da ich mich gerade erst in JavaFX einarbeite, sagt mir diese Meldung nur sehr bedingt etwas. Hat jemand einen Ratschlag für mich?
 
Dieser hat nichts mit javafx zu tun.
Die Meldung sagt doch genau was das Problem ist. Es gibt die get(int) nicht in MainTableClasses gibt.

Du willst doch die ID von MainTableClasses haben oder?
 
Ja, das stimmt. In meiner ersten Column befinden sich die IDs, von denen ich die selektierten in eine ArrayList aufnehmen möchte. Falls es hilft, anbei mein jetziger Programmstatus:

MainTableClass:
Java:
package application;

public class MainTableClasses {
   
    private int id;
    private String ort;
    private String strasse;
    private int ha;
    private String ha_zusatz;
    private int we;
    private String info;
   
    public MainTableClasses(int id, String ort, String strasse, int ha, String ha_zusatz, int we, String info) {
        this.id = id;
        this.ort = ort;
        this.strasse = strasse;
        this.ha = ha;
        this.ha_zusatz = ha_zusatz;
        this.we = we;
        this.info = info;
    }
   
    // create getters
    public int getId() {
        return id;
    }
    public String getOrt() {
        return ort;
    }
    public String getStrasse() {
        return strasse;
    }
    public int getHa() {
        return ha;
    }
    public String getHa_zusatz() {
        return ha_zusatz;
    }
    public int getWe() {
        return we;
    }
    public String getInfo() {
        return info;
    }
}

im MainController:
Java:
    @Override
    public void initialize(URL location, ResourceBundle resources) {
       
        table.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
        columnId.setCellValueFactory(new PropertyValueFactory<MainTableClasses, Integer>("id"));
        columnOrt.setCellValueFactory(new PropertyValueFactory<MainTableClasses, String>("ort"));
        columnStrasse.setCellValueFactory(new PropertyValueFactory<MainTableClasses, String>("strasse"));
        columnHa.setCellValueFactory(new PropertyValueFactory<MainTableClasses, Integer>("ha"));
        columnHa_Zusatz.setCellValueFactory(new PropertyValueFactory<MainTableClasses, String>("ha_zusatz"));
        columnWe.setCellValueFactory(new PropertyValueFactory<MainTableClasses, Integer>("we"));
        columnInfo.setCellValueFactory(new PropertyValueFactory<MainTableClasses, String>("info"));
       
    }
 

Zurück
Oben