2016-04-06 22 views
0

ポップアップウィンドウから戻り値の型を取得するにはどのような方法が最適です。私はポップアップウィンドウを作成し、それは記入する必要があるフィールドがあります。私はこれらのフィールドから返される型Personを取得したい。ポップアップウィンドウから戻り値の型を取得する最善の方法JavaFx

ここで私はポップアップウィンドウを呼び出します。 HERESにポップアップウィンドウクラス

Button addButton = new Button("Add Person to interested list"); 
AddPersonAdop adp = new AddPersonAdop(); 
addButton.setOnAction(e -> table.getItems().add(adp.addButtonPerson())); 

public class AddPersonAdop { 

    private TextField personNameAdoption, personAddressAdoption, personNoAdoption, personEmailAdoption; 

    public Person display() { 
     final Stage window = new Stage(); 
     BorderPane bP = new BorderPane(); 

     window.setTitle("Add Person"); 

     Button addPerson = new Button("Add Selected Animal"); 
     addPerson.setOnAction(e -> { 
      window.close(); 
      addButtonPerson();}); 

     Button closeButton = new Button("Close Window"); 
     closeButton.setOnAction(e -> window.close()); 

     VBox vbox = new VBox(personFieldsAdoption(), addPerson, closeButton); 
     vbox.getChildren().addAll(); 


     bP.setCenter(vbox); 
     Scene scene = new Scene(bP, 800,800); 

     window.setScene(scene); 
     window.show(); 
     return addButtonPerson(); 

    } 

    public GridPane personFieldsAdoption(){ 

     personNameAdoption = new TextField(); 
     personNameAdoption.setPromptText("Name"); 
     personNameAdoption.setMinWidth(75); 

     personAddressAdoption = new TextField(); 
     personAddressAdoption.setPromptText("Address"); 
     personAddressAdoption.setMinWidth(75); 

     personNoAdoption = new TextField(); 
     personNoAdoption.setPromptText("Phone Number"); 
     personNoAdoption.setMinWidth(75); 

     personEmailAdoption = new TextField(); 
     personEmailAdoption.setPromptText("Email"); 
     personEmailAdoption.setMinWidth(75); 

     GridPane grid = new GridPane(); 
     grid.centerShapeProperty(); 
     grid.setHgap(10); 
     grid.setPadding(new Insets(10,10,10,10)); 
     grid.addRow(0, CustomItems.label("Enter Persons Details")); 
     grid.addRow(1, new Label("Person Name *"), new Label(" Address *"), new Label("Phone Number *"), new Label("Email *")); 
     grid.addRow(2, personNameAdoption, personAddressAdoption, personNoAdoption, personEmailAdoption); 

     return grid; 
    } 

    public Person addButtonPerson(){ 

     if(personNameAdoption.getText().isEmpty() || personAddressAdoption.getText().isEmpty() || personEmailAdoption.getText().isEmpty() || personNoAdoption.getText().isEmpty()) 
     { 
      AlertBox.warn("Some Person Info Missing", "Please complete all Person mandatory fields"); 
      Person person = new Person("name","add","@", "999"); 
      return person; 
     } 
     else{ 
      Person person = new Person(personNameAdoption.getText(),personAddressAdoption.getText(),personEmailAdoption.getText(), personNoAdoption.getText()); 
      return person; 
     } 
    } 

} 

答えて

1

利用window.showAndWait()の代わりdisplay()方法でwindow.show()。その後

addButton.setOnAction(e -> table.getItems().add(adp.display())); 
関連する問題