与键盘箭头键一起使用时,Javafx combobox changeListener fire动作

时间:2014-07-14 11:43:02

标签: combobox javafx

当我在组合框中使用箭头键(实现changeListener)时,它会触发动作。如果按下或用鼠标选择回车,我怎样才能使它工作。

修改

基本上我觉得问题是鼠标事件。在

中按下组合框的下拉按钮时会触发一个动作
CCombobox.setEditable(true);
CCombobox.setOnMouseClicked(new EventHandler<MouseEvent>() {
                @Override
                public void handle(MouseEvent event) {
                     System.out.println("Clicked");
                }

1 个答案:

答案 0 :(得分:1)

ChangeListener正在注册对Selected Items进行的修改。它永远不会提供有关鼠标或键盘的信息。

您需要做的是在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
                }
            });