Combobox 与键盘箭头键一起使用时,Javafx组合框changeListener激发动作
当我在combobox(实现changeListener)中使用箭头键时,它会触发操作。如何使它仅在按下enter键或用鼠标选择时工作 编辑: 基本上我感觉的问题是鼠标事件。当按下组合框的下拉按钮时,将触发一个操作Combobox 与键盘箭头键一起使用时,Javafx组合框changeListener激发动作,combobox,javafx,Combobox,Javafx,当我在combobox(实现changeListener)中使用箭头键时,它会触发操作。如何使它仅在按下enter键或用鼠标选择时工作 编辑: 基本上我感觉的问题是鼠标事件。当按下组合框的下拉按钮时,将触发一个操作 CCombobox.setEditable(true); CCombobox.setOnMouseClicked(new EventHandler<MouseEvent>() { @Override publ
CCombobox.setEditable(true);
CCombobox.setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
System.out.println("Clicked");
}
CCombobox.setEditable(true);
setOnMouseClicked(新的EventHandler(){
@凌驾
公共无效句柄(MouseeEvent事件){
System.out.println(“单击”);
}
ChangeListener正在注册对所选项目所做的修改。它永远不会向您提供有关鼠标或键盘的信息
您需要做的是在keyTyped(或keyPressed)和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
}
});
//cb=组合框
cb.setOnKeyPressed(新的EventHandler(){
@凌驾
公共无效句柄(KeyEvent KeyEvent){
if(keyEvent.getCode()==KeyCode.ENTER){
//做你想做的事
}
}
});
cb.setOnMouseClicked(新的EventHandler(){
@凌驾
公共无效句柄(MouseEvent t){
//做你想做的事
}
});
一些示例代码或图片可能有助于其他人理解您的确切要求。谢谢您的帮助。我已编辑了我的问题。当按下Combobox的下拉按钮时,它将触发鼠标事件。但我只希望Combobox的下拉列表中出现鼠标事件。