Отключение ввода JavaFX ComboBox - PullRequest
       4

Отключение ввода JavaFX ComboBox

1 голос
/ 26 сентября 2019

Как отключить ввод в редактируемом списке?(Ну, на самом деле JFoenix JFXCombobox, но в основном это то же самое, за исключением его внешнего вида)

setEditable(false) отключит ввод с клавиатуры в Combobox, но список все равно будет отображаться

setDisabled(true) отключит весьCombobox, но я хочу, чтобы пользователь мог фокусировать Combobox, чтобы он мог копировать его содержимое, если это необходимо.

Почему я хочу это так? В моих формах пользователь должен сначала нажать кнопку редактирования, чтобыуметь что-то менять.

1 Ответ

3 голосов
/ 26 сентября 2019

По существу, метод ComboBox.setEditable добавляет / удаляет редактор в ComboBox, который можно получить с помощью ComboBox.getEditor()

Чтобы сохранить TextField (длякопировать из), но отключить пользовательский ввод, просто установите флаг editable в базовом TextField:

private ComboBox<String> myComboBox;
[...]

myComboBox.setEditable(true);
myComboBox.getEditor().setEditable(false);

РЕДАКТИРОВАТЬ:

Как сказал @jewelsea в комментарии ниже, вы можете скрытьсписок, как только пользователь просит открыть его:

myComboBox.setOnShown(event -> comboBox.hide());

Я думаю, что было бы «чище» отключить кнопку, которая открывает раскрывающийся список, но, к сожалению, я пока не нашел способа сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...