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);
}
}
你当然也可以使用包含该处理程序的属性项目类型...
到目前为止,它的工作原理,但我第一次选择一个项目,它会触发我列表中的第一项。如果我从下拉列表中选择项目,它只会触发正确的操作。我必须补充说,我的列表在输入时过滤项目。 – Flippy