У меня есть объект javafx.scene.control.ChoiceDialog
в моем проекте JavaFX. Когда откроется диалоговое окно, я хочу установить фокус на базовый ComboBox
. Однако я не могу понять, как получить базовый элемент управления ComboBox
. С помощью TextInputDialog
существует метод, называемый getEditor()
. Есть ли какой-либо способ (кроме рефлексивного доступа к частному члену comboBox
), чтобы получить базовый ComboBox
?JavaFX Получить ComboBox от ChoiceDialog
ответ
Чтобы установить фокус на ComboBox
вы можете использовать грязный хак, который вызывает updateGrid
в ChoiceDialog
после того, как показано на рисунке:
ChoiceDialog<String> choiceDialog = new ChoiceDialog<>("test", getData());
choiceDialog.showingProperty().addListener((ov, b, b1) -> {
if (b1) {
choiceDialog.setContentText("");
}else {
choiceDialog.setContentText(null);
}
//or
if (b1) {
Node comboBox = choiceDialog.getDialogPane().lookup(".combo-box");
comboBox.requestFocus();
}
});
Как вы определили константу «.combo-box»? Я хотел бы знать, поэтому я могу посмотреть это сам в будущем. –
Это класс стиля по умолчанию для 'ComboBox'. Вы можете получить класс Style из «Узла» из [Справочного руководства по CSS] (http://docs.oracle.com/javafx/2/api/javafx/scene/doc-files/cssref.html), или вы можете используйте [Scenicview] (http://fxexperience.com/scenic-view/) для проверки свойств «Scenegraph» – jns
Jeff, также посмотрите на 'modena.css', который находится внутри' jfxrt.jar' в вашей JRE каталог. Стиль стилей modena определяет стиль по умолчанию для всех элементов управления. Если вы настраиваете стиль существующих элементов управления, выполняете поиск по CSS на основе их структуры или просто хотите изучить лучшие практики для определений CSS JavaFX, modena.css - бесценный ресурс. – jewelsea
- 1. JavaFx combobox от mysql
- 2. combobox зависит от другого combobox - JavaFX
- 3. JavaFX: получить ComboBox из ComboBoxTableCell
- 4. Как определить, что в случае отмены прессуют в JavaFX ChoiceDialog
- 5. Выпадающее меню JavaFX Combobox отключается от экрана
- 6. JavaFX combobox css styling
- 7. javafx 2.1 combobox
- 8. получить объект от ComboBox
- 9. Получить значение от combobox
- 10. ComboBox в javaFX
- 11. JavaFX ComboBox FXML
- 12. Вернуть выбор combobox javafx
- 13. JavaFX ComboBox Image
- 14. Как перебирать JavaFX-combobox?
- 15. JavaFX ComboBox readFromFile
- 16. javafx create ComboBox TableCell
- 17. JavaFx: combobox max width
- 18. JavaFX - Filtered ComboBox
- 19. Javafx combobox styling
- 20. JavaFX: развернуть ComboBox программно
- 21. JavaFX ComboBox измененный цикл
- 22. JavaFX ComboBox, содержащий байты
- 23. Ошибка с JavaFX ComboBox?
- 24. JavaFX ComboBox CSS style
- 25. JAVAFX ComboBox пуст
- 26. Установить шрифт JavaFx ComboBox?
- 27. Связывание JavaFX ComboBox
- 28. JavaFX ComboBox Dropdown Layout
- 29. JavaFx ComboBox настроить выпадающее меню
- 30. JAVAFX 8 ComboBox и ObservableList
AFAIK, то ComboBox получает фокус по умолчанию, когда ChoiceDialog видна. – ItachiUchiha
В Windows 7 Enterprise SP1 x64, работающем на JRE 8u77 x64, я вижу первоначальный фокус на кнопке по умолчанию (которая является кнопкой «ОК»). Я вижу такое же поведение для 'TextInputDialog'. Вы наблюдали различное поведение в другой комбинации ОС/JVM? –
Я не думаю, что это возможно. Если вы проверите код для ChoiceDialog, [конструктор вызывает updateGrid()] (http://hg.openjdk.java.net/openjfx/8u/rt/file/105417e52ffe/modules/controls/src/main/java/javafx /scene/control/ChoiceDialog.java#l151), который стажер устанавливает [фокус на ComboBox] (http://hg.openjdk.java.net/openjfx/8u/rt/file/105417e52ffe/modules/controls/src/ Основной/Java/JavaFX/сцены/контроль/ChoiceDialog.java # L220). – ItachiUchiha