Skip to content

Instantly share code, notes, and snippets.

@drguildo
Last active June 22, 2024 13:18
Show Gist options
  • Save drguildo/ba2834bf52d624113041 to your computer and use it in GitHub Desktop.
Save drguildo/ba2834bf52d624113041 to your computer and use it in GitHub Desktop.
JavaFX doesn't have a password dialog, so I wrote one.
package io.sjm.diary;
import javafx.application.Platform;
import javafx.geometry.Insets;
import javafx.scene.control.ButtonBar.ButtonData;
import javafx.scene.control.ButtonType;
import javafx.scene.control.Dialog;
import javafx.scene.control.PasswordField;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Priority;
public class PasswordDialog extends Dialog<String> {
private PasswordField passwordField;
public PasswordDialog() {
setTitle("Password");
setHeaderText("Please enter your password.");
ButtonType passwordButtonType = new ButtonType("Decrypt", ButtonData.OK_DONE);
getDialogPane().getButtonTypes().addAll(passwordButtonType, ButtonType.CANCEL);
passwordField = new PasswordField();
passwordField.setPromptText("Password");
HBox hBox = new HBox();
hBox.getChildren().add(passwordField);
hBox.setPadding(new Insets(20));
HBox.setHgrow(passwordField, Priority.ALWAYS);
getDialogPane().setContent(hBox);
Platform.runLater(() -> passwordField.requestFocus());
setResultConverter(dialogButton -> {
if (dialogButton == passwordButtonType) {
return passwordField.getText();
}
return null;
});
}
public PasswordField getPasswordField() {
return passwordField;
}
}
@IbrokhimjonAkhmadjonov
Copy link

Thank you. It is very usefull for me!

@ubaid4j
Copy link

ubaid4j commented Mar 23, 2019

Thanks .....

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment