Retourne le résultat de la plateforme javafx runlater

Je suis en train de travailler sur JavaFX application, dans mon scénario est de montrer une invite de mot de passe créé dans JavaFX qui prend un mot de passe avec l'option deux OK et Cancel. J'ai retourné le mot de passe entré par l'utilisateur.

Ma classe de montrer dialogue de mot de passe est -

public static String showPasswordDialog(String title, String message, Stage parentStage, double w, double h) {
    try {
        Stage stage = new Stage();
        PasswordDialogController controller = (PasswordDialogController) Utility.replaceScene("Password.fxml", stage);
        passwordDialogController.init(stage, message, "/images/password.png");
        if (parentStage != null) {
            stage.initOwner(parentStage);
        }
        stage.initModality(Modality.WINDOW_MODAL);
        stage.initStyle(StageStyle.UTILITY);
        stage.setResizable(false);
        stage.setWidth(w);
        stage.setHeight(h);                
        stage.showAndWait();
        return controller.getPassword(); 
    } catch (Exception ex) {
         return null;
    }

Mon code où pour montrer invite de mot de passe est en dessous, en fait ce message sera affiché sur les autres de l'INTERFACE utilisateur, j'ai donc besoin de inclose présent à l'intérieur de Platform.runlater()sinon il jette Not on FX application thread. J'ai besoin de cette invite de mot de passe pour être affichée jusqu'à ce que je l'obtenir correcte. Comment puis-je obtenir la valeur de mot de passe, si j'ai compris montrant mot de passe à l'intérieur de runlater.

Est-il mieux?

final String sPassword = null;

          do {
            Platform.runLater(new Runnable() {

                @Override
                public void run() {
                     sPassword = JavaFXDialog.showPasswordDialog(sTaskName + "Password", "Enter the password:", parentStage, 400.0, 160.0);
                }
            });

            if (sPassword == null) {
                System.out.println("Entering password cancelled.");
                throw new Exception("Cancel");
            }
        } while (sPassword.equalsIgnoreCase(""));

source d'informationauteur Neelam Sharma | 2012-12-10