Aufruf: Student std = (Student) tableview.getSelectionModel().getSelectedItem(); // Dialog zum Ändern EditStage editstage = new EditStage(stage, std); editstage.showAndWait(); if (editstage.retcode) { } public class EditStage extends Stage { private Student std=null; public boolean retcode=false; private TextField tLastname = new TextField("") ; private TextField tFirstname = new TextField("") ; public EditStage (Stage parent, Student std) { this.std=std; setGUI(); setResizable(true); this.initOwner(parent); initModality(Modality.WINDOW_MODAL); // javafx.stage.Modality this.setTitle("edit student"); } private void setGUI() { GridPane gridpane = new GridPane(); gridpane.setVgap(25); gridpane.setHgap(15); gridpane.setGridLinesVisible(true); gridpane.setPadding(new Insets(10) ); // TRBL ColumnConstraints column1 = new ColumnConstraints(); //column1.setPercentWidth(0); ColumnConstraints column2 = new ColumnConstraints(); column2.setPercentWidth(100); gridpane.getColumnConstraints().addAll(column1, column2); Label label = new Label("Bearbeiten eines Studenten") ; label.setFont(new Font("Courier New",32)); label.setTextFill(Color.BLUE); gridpane.add(label, 0, 0,2,1); // column=1 row=0 label = new Label("Nachname") ; label.setFont(new Font("Courier New",22)); gridpane.add(label, 0, 1); // column=1 row=0 gridpane.add(tLastname, 1, 1); // column=1 row=0 gridpane.setHgrow(tLastname, Priority.ALWAYS); // ----------------------------------------------------- label = new Label("Vorname") ; gridpane.add(label, 0, 2); // column=1 row=0 tFirstname.setFont(new Font("Courier New",22)); gridpane.add(tFirstname, 1, 2); // column=1 row=0 gridpane.setHgrow(tFirstname, Priority.ALWAYS); // ----------------------------------------------------- FlowPane boxpane = new FlowPane(20,20); boxpane.setBorder(new Border(new BorderStroke(Color.RED, BorderStrokeStyle.SOLID, CornerRadii.EMPTY, BorderWidths.DEFAULT))); boxpane.setAlignment(Pos.CENTER); boxpane.setMaxWidth(Double.POSITIVE_INFINITY); gridpane.add(boxpane, 0, 5,2,1); // column=1 row=0 gridpane.setHalignment(boxpane, HPos.CENTER); Button bnOk = new Button("Ok") ; bnOk.setFont(new Font("Courier New",22)); bnOk.setMaxWidth(Double.POSITIVE_INFINITY); bnOk.setOnAction(e->okClick()); boxpane.getChildren().add(bnOk); boxpane.setMargin(bnOk, new Insets(0, 10, 0, 10) ); // TRBL Button bnEsc = new Button("Esc") ; bnEsc.setFont(new Font("Courier New",22)); bnEsc.setMaxWidth(Double.POSITIVE_INFINITY); bnEsc.setOnAction(e->escClick()); boxpane.getChildren().add(bnEsc); boxpane.setMargin(bnEsc, new Insets(0, 10, 0, 10) ); // TRBL tLastname.setText(std.getLastname()); tFirstname.setText(std.getFirstname()); Scene scene= new Scene(gridpane, 600, 410); this.setScene(scene); } private void okClick() { String lastname = tLastname.getText().trim(); if (lastname.length()==0) { Basis.errorBox("Bitte geben Sie einen Nachnamen ein","Hinweis"); tLastname.requestFocus(); return; } String firstname = tFirstname.getText().trim(); if (firstname.length()==0) { Basis.errorBox("Bitte geben Sie einen Vornamen ein","Hinweis"); tFirstname.requestFocus(); return; } retcode=true; close(); } // bnOk private void escClick() { close(); } }