JavaFX - 将ButtonAction绑定到组合框项目

问题描述:

我正在使用名为testBox的可编辑组合框,其项目为testBox.getItems().addAll("A","B","C");。 我也有一个上输入-事件JavaFX - 将ButtonAction绑定到组合框项目

@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'项“A'事件时,”并回车何苦呢?

请加snippets :)。

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

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); 
    } 
} 

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

+0

到目前为止,它的工作原理,但我第一次选择一个项目,它会触发我列表中的第一项。如果我从下拉列表中选择项目,它只会触发正确的操作。我必须补充说,我的列表在输入时过滤项目。 – Flippy