Посмотрите это: https://code.makery.ch/blog/javafx-dialogs-official/ -> https://code.makery.ch/blog/javafx-dialogs-official/login-dialog.png
Подскажите, как расширить ширину TextField (username, password) до правого конца
Код:
// Create the custom dialog.
Dialog<Pair<String, String>> dialog = new Dialog<>();
dialog.setTitle("Login Dialog");
dialog.setHeaderText("Look, a Custom Login Dialog");
// Set the icon (must be included in the project).
dialog.setGraphic(new ImageView(this.getClass().getResource("login.png").toString()));
// Set the button types.
ButtonType loginButtonType = new ButtonType("Login", ButtonData.OK_DONE);
dialog.getDialogPane().getButtonTypes().addAll(loginButtonType, ButtonType.CANCEL);
// Create the username and password labels and fields.
GridPane grid = new GridPane();
grid.setHgap(10);
grid.setVgap(10);
grid.setPadding(new Insets(20, 150, 10, 10));
TextField username = new TextField();
username.setPromptText("Username");
PasswordField password = new PasswordField();
password.setPromptText("Password");
grid.add(new Label("Username:"), 0, 0);
grid.add(username, 1, 0);
grid.add(new Label("Password:"), 0, 1);
grid.add(password, 1, 1);
// Enable/Disable login button depending on whether a username was entered.
Node loginButton = dialog.getDialogPane().lookupButton(loginButtonType);
loginButton.setDisable(true);
// Do some validation (using the Java 8 lambda syntax).
username.textProperty().addListener((observable, oldValue, newValue) -> {
loginButton.setDisable(newValue.trim().isEmpty());
});
dialog.getDialogPane().setContent(grid);
// Request focus on the username field by default.
Platform.runLater(() -> username.requestFocus());
// Convert the result to a username-password-pair when the login button is clicked.
dialog.setResultConverter(dialogButton -> {
if (dialogButton == loginButtonType) {
return new Pair<>(username.getText(), password.getText());
}
return null;
});
Optional<Pair<String, String>> result = dialog.showAndWait();
result.ifPresent(usernamePassword -> {
System.out.println("Username = " + usernamePassword.getKey() + ", Password = " + usernamePassword.getValue());
});
Что именно непонятно в моем вопросе?
В нем нет никакого кода. Кто-то с вашей репутацией уже должен знать, что код должен быть размещен в самом вопросе.
@James_D - перейдите по ссылке и посмотрите код. Повторяю простой вопрос, что именно непонятно? Если все понятно - пишите: "Все понятно", но "бла-бла-бла", если нет - подскажите? ЧТО?
Какую часть «Предоставьте все части, которые нужны кому-то другому, чтобы воспроизвести вашу проблему в самом вопросе» вы не понимаете? Если код в ссылке изменится или ссылка устареет, вопрос и любой ответ будут бесполезны для будущих пользователей. Если вы не можете соблюдать правила сайта, не пишите здесь.
Хорошо, получите тонны ненужных байтов!
Опять же, опубликуйте минимально воспроизводимый пример. Пожалуйста, прочитайте ссылку и на самом деле сделайте то, что она говорит. Это не является ни минимальным (он содержит множество функций, которые не имеют отношения к вашему вопросу), ни воспроизводимым (его нельзя скопировать и запустить как есть). Я не собираюсь снова отвечать в этой теме; Я просто позволю ему закрыться.
grid.setPadding(new Insets(20, 10, 10, 10));
grid.getColumnConstraints().addAll(new ColumnConstraints(), new ColumnConstraints(300));
Если это то, что вам помогло, вы должны принять свой собственный ответ (и, если вы любезны, добавить к нему какое-то объяснение, чтобы предотвратить его удаление), чтобы показать другим пользователям с аналогичными проблемами, что на вопрос можно ответить.
Не размещайте ссылки на код. Создайте минимально воспроизводимый пример и опубликуйте его в вопросе.