Установите размер TextField на GridPane, Java FX

Посмотрите это: 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 16.02.2023 18:29

Что именно непонятно в моем вопросе?

ilw 16.02.2023 18:31

В нем нет никакого кода. Кто-то с вашей репутацией уже должен знать, что код должен быть размещен в самом вопросе.

James_D 16.02.2023 18:33

@James_D - перейдите по ссылке и посмотрите код. Повторяю простой вопрос, что именно непонятно? Если все понятно - пишите: "Все понятно", но "бла-бла-бла", если нет - подскажите? ЧТО?

ilw 16.02.2023 18:36

Какую часть «Предоставьте все части, которые нужны кому-то другому, чтобы воспроизвести вашу проблему в самом вопросе» вы не понимаете? Если код в ссылке изменится или ссылка устареет, вопрос и любой ответ будут бесполезны для будущих пользователей. Если вы не можете соблюдать правила сайта, не пишите здесь.

James_D 16.02.2023 18:40

Хорошо, получите тонны ненужных байтов!

ilw 16.02.2023 18:42

Опять же, опубликуйте минимально воспроизводимый пример. Пожалуйста, прочитайте ссылку и на самом деле сделайте то, что она говорит. Это не является ни минимальным (он содержит множество функций, которые не имеют отношения к вашему вопросу), ни воспроизводимым (его нельзя скопировать и запустить как есть). Я не собираюсь снова отвечать в этой теме; Я просто позволю ему закрыться.

James_D 16.02.2023 18:45
Лучшая компания по разработке спортивных приложений
Лучшая компания по разработке спортивных приложений
Ищете лучшую компанию по разработке спортивных приложений? Этот список, несомненно, облегчит вашу работу!
Blibli Automation Journey - Как захватить сетевой трафик с помощью утилиты HAR в Selenium 4
Blibli Automation Journey - Как захватить сетевой трафик с помощью утилиты HAR в Selenium 4
Если вы являетесь веб-разработчиком или тестировщиком, вы можете быть знакомы с Selenium, популярным инструментом для автоматизации работы...
Фото ️🔁 Radek Jedynak 🔃 on ️🔁 Unsplash 🔃
Фото ️🔁 Radek Jedynak 🔃 on ️🔁 Unsplash 🔃
Что такое Java 8 Streams API? Java 8 Stream API
Деревья поиска (Алгоритм4 Заметки к учебнику)
Деревья поиска (Алгоритм4 Заметки к учебнику)
(1) Двоичные деревья поиска: среднее lgN, наихудшее N для вставки и поиска.
5
7
64
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
grid.setPadding(new Insets(20, 10, 10, 10));

grid.getColumnConstraints().addAll(new ColumnConstraints(), new ColumnConstraints(300));

Если это то, что вам помогло, вы должны принять свой собственный ответ (и, если вы любезны, добавить к нему какое-то объяснение, чтобы предотвратить его удаление), чтобы показать другим пользователям с аналогичными проблемами, что на вопрос можно ответить.

cyberbrain 16.02.2023 20:24

Другие вопросы по теме