当我在组合框中使用箭头键(实现changeListener)时,它会触发动作。如果按下或用鼠标选择回车,我怎样才能使它工作。
修改
基本上我觉得问题是鼠标事件。在
中按下组合框的下拉按钮时会触发一个动作CCombobox.setEditable(true);
CCombobox.setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
System.out.println("Clicked");
}
答案 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
}
});