【问题标题】:JavaFX - Bind ButtonAction to ComboBox ItemJavaFX - 将 ButtonAction 绑定到 ComboBox 项
【发布时间】:2016-11-12 19:32:46
【问题描述】:

我正在使用一个名为testBox 的可编辑组合框,其中包含testBox.getItems().addAll("A","B","C"); 项。 我也有一个 Enter-Event

@FXML
public void onEnter(ActionEvent event){
//
}

还有 ButtonEvents 之类的

@FXML
void aButton(ActionEvent event){
//Do stuff
}
@FXML
void bButton(ActionEvent event){
//Do stuff
}
@FXML
void cButton(ActionEvent event){
//Do stuff
}

如何在选择“A'-Item”并输入按下时,例如我的按钮“A'-Event?

请添加 sn-ps :)。

【问题讨论】:

    标签: java button javafx combobox enter


    【解决方案1】:

    您可以确定要在事件处理程序中执行的操作。例如。假设项目列表没有被修改:

    List<EventHandler<ActionEvent>> handlers = Arrays.asList(
                                                        this::aButton,
                                                        this::bButton,
                                                        this::cButton
        );
    
    @FXML
    public void onEnter(ActionEvent event){
        int index = testBox.getSelectionModel().getSelectedIndex();
        if (index >= 0) {
             handlers.get(index).handle(event);
        }
    }
    

    您当然也可以使用包含处理程序属性的项目类型...

    【讨论】:

    • 到目前为止它可以工作,但是当我第一次选择一个项目时,它会触发我列表中的第一个项目。如果我从下拉列表中选择项目,它只会触发正确的操作。我必须在输入时添加我的列表过滤项目。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-21
    • 1970-01-01
    • 2011-04-10
    • 1970-01-01
    • 1970-01-01
    • 2015-11-04
    • 2010-09-17
    相关资源
    最近更新 更多