我的JavaFX项目中有一个javafx.scene.control.ChoiceDialog
对象。对话框打开后,我想将焦点设置为基础ComboBox
。但是,我无法弄清楚如何获得基础ComboBox
控件。使用TextInputDialog
时,会有一个名为getEditor()
的方法。有没有办法(除了反思地访问私人comboBox
成员)以获取基础ComboBox
?
答案 0 :(得分:1)
要将焦点设置为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();
}
});