JavaFX - 将 ButtonAction 绑定到 ComboBox 项
JavaFX - Bind ButtonAction to ComboBox Item
我正在使用名为 testBox
的可编辑组合框和项目 testBox.getItems().addAll("A","B","C");
。
我还有一个 on 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' - 选择'a' - 选择并按下输入的事件?
请添加片段:)。
您可以确定要在事件处理程序中执行的操作。例如。假设项目列表未修改:
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);
}
}
您当然也可以使用包含 属性 的项目类型作为处理程序...
我正在使用名为 testBox
的可编辑组合框和项目 testBox.getItems().addAll("A","B","C");
。
我还有一个 on 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' - 选择'a' - 选择并按下输入的事件?
请添加片段:)。
您可以确定要在事件处理程序中执行的操作。例如。假设项目列表未修改:
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);
}
}
您当然也可以使用包含 属性 的项目类型作为处理程序...