2014-07-14 127 views
1

當我使用組合框中的箭頭鍵(實現changeListener)時,它觸發action.How我可以使它僅在按下Enter或使用鼠標選擇時才工作。Javafx combobox changeListener當使用鍵盤箭頭鍵時觸發動作

編輯:

基本上我覺得這個問題是鼠標事件。在按下組合框的下拉按鈕時觸發動作

CCombobox.setEditable(true); 
CCombobox.setOnMouseClicked(new EventHandler<MouseEvent>() { 
       @Override 
       public void handle(MouseEvent event) { 
        System.out.println("Clicked"); 
       } 
+0

某些示例代碼或圖片可能有助於他人理解您究竟在詢問什麼。 –

回答

1

ChangeListener正在註冊對選定項目所做的修改。它永遠不會給你關於鼠標或鍵盤的信息。

你所要做的就是在keyTyped(或keyPressed)上添加一些EventHandler,並在MouseClicked上添加一些EventHandler,以便專門捕捉你想要的內容。然後,您可以對這些事件做出反應:

//cb = a ComboBox 
cb.setOnKeyPressed(new EventHandler<KeyEvent>() { 
       @Override 
       public void handle(KeyEvent keyEvent) { 
        if (keyEvent.getCode() == KeyCode.ENTER) { 
         //Do what you want to do 
        } 
       } 
      }); 

      cb.setOnMouseClicked(new EventHandler<MouseEvent>() { 

       @Override 
       public void handle(MouseEvent t) { 
        //Do what you want to do 
       } 
      }); 
+0

感謝您的幫助。我編輯了我的問題。當Combobox的下拉按鈕被按下時觸發鼠標事件。但我只想在組合框的下拉列表中選擇鼠標事件。 – vinay