JavaFX从ChoiceDialog获取ComboBox

时间:2016-05-17 14:56:06

标签: java javafx javafx-8

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

1 个答案:

答案 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();
    }
});