2016-04-06 29 views
0

Bir açılır pencereden bir dönüş türü elde etmenin en iyi yolu. Bir popup penceresi oluştururken ve doldurulması gereken alanlar var. Bu alanlardan Geri dönüş tipi Kişi almak istiyorum. Açılır pencereyi aradığım hereseBir açılır pencereden dönüş tipi almak için en iyi yol JavaFx

.

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

heres açılır pencere sınıfı

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; 
     } 
    } 

} 

cevap

1

display() yönteminde kullanılması window.showAndWait() yerine window.show(). Sonra

addButton.setOnAction(e -> table.getItems().add(adp.display()));