2015-07-22 6 views
1

Je veux créer un dialogue JavaFX avec deux entrées champs ....
Jusqu'à présent, je crée juste des boîtes de dialogue avec 1 entrée sur le terrain et j'ai essayé de le faire avec 2, mais sans succèsJavaFX - dialogue avec 2 champs d'entrée?

J'utilise ce code pour les dialogues avec 1 entrée-champ:

public String splitn; 
    public void dialogSplit() throws IOException { 
     TextInputDialog dialog = new TextInputDialog(); 
     dialog.setTitle("Split"); 
     dialog.setHeaderText("After how many characters should be splitted?"); 

     Optional<String> result = dialog.showAndWait(); 
     if (result.isPresent()) { 
      splitn=result.get(); 
     } 
    } 

est comment je veux que ça ressemble à: enter image description here

+0

vous pouvez créer votre propre boîte de dialogue. voir le "Dialogue de connexion personnalisé" sur http://code.makery.ch/blog/javafx-dialogs-official/ ... c'est presque ce dont vous avez besoin – griFlo

Répondre

4

modifié légèrement de http://code.makery.ch/blog/javafx-dialogs-official

// Create the custom dialog. 
    Dialog<Pair<String, String>> dialog = new Dialog<>(); 
    dialog.setTitle("TestName"); 

    // Set the button types. 
    ButtonType loginButtonType = new ButtonType("OK", ButtonData.OK_DONE); 
    dialog.getDialogPane().getButtonTypes().addAll(loginButtonType, ButtonType.CANCEL); 

      GridPane gridPane = new GridPane(); 
    gridPane.setHgap(10); 
    gridPane.setVgap(10); 
    gridPane.setPadding(new Insets(20, 150, 10, 10)); 

    TextField from = new TextField(); 
    from.setPromptText("From"); 
    TextField to = new TextField(); 
    to.setPromptText("To"); 

    gridPane.add(from, 0, 0); 
    gridPane.add(new Label("To:"), 1, 0); 
    gridPane.add(to, 2, 0); 

    dialog.getDialogPane().setContent(gridPane); 

    // Request focus on the username field by default. 
    Platform.runLater(() -> from.requestFocus()); 

    // Convert the result to a username-password-pair when the login button is clicked. 
    dialog.setResultConverter(dialogButton -> { 
     if (dialogButton == loginButtonType) { 
      return new Pair<>(from.getText(), to.getText()); 
     } 
     return null; 
    }); 

    Optional<Pair<String, String>> result = dialog.showAndWait(); 

    result.ifPresent(pair -> { 
     System.out.println("From=" + pair.getKey() + ", To=" + pair.getValue()); 
    });