Вы можете использовать getEditor()
на TextInputDialog
, чтобы получить базовые TextField
и lookupButton(ButtonType)
на DialogPane
диалогового окна, чтобы получить OK- Button
. Затем вы можете использовать привязку для реализации желаемого поведения:
Button okButton = (Button) tid.getDialogPane().lookupButton(ButtonType.OK);
TextField inputField = tid.getEditor();
BooleanBinding isInvalid = Bindings.createBooleanBinding(() -> isInvalid(inputField.getText()), inputField.textProperty());
okButton.disableProperty().bind(isInvalid);
Теперь вы можете создать метод isInvalid()
, который проверяет ваш ввод и либо возвращает true
(если кнопка должна быть отключена), либо false
(если он должен быть включен).
Конечно, вы можете изменить эту логику и создать вместо этого метод isValid
, используя метод not()
в привязке.