2016-11-12 100 views
0

我正在使用名爲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 :)。

回答

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

你當然也可以使用包含該處理程序的屬性項目類型...

+0

到目前爲止,它的工作原理,但我第一次選擇一個項目,它會觸發我列表中的第一項。如果我從下拉列表中選擇項目,它只會觸發正確的操作。我必須補充說,我的列表在輸入時過濾項目。 – Flippy

相關問題