防止按钮在按下输入或空格时触发 Javafx

Jac*_*ack 0 java javafx openjfx

我在场景上有一个按钮,只要按下空格键或回车键,这个按钮就会自动触发。我希望用户能够在不触发此按钮的情况下键入这些键。我已经尝试root.requestFocus()在我的场景中的其他节点上执行和调用请求焦点方法。当按下这些键时,如何防止此按钮触发。谢谢你的帮助。

编辑:到目前为止,我刚刚完成了使 Javafx 应用程序工作的样板代码,添加了该按钮和一些标签。我在我的应用程序的几个节点中尝试了 requestFocus() 方法,但没有一个有什么不同。我还有一个scene.setOnKeyPressed用于按下按键的动作事件侦听器。

小智 5

您是否尝试过添加一个事件过滤器来javafx.scene.input.KeyEvent消耗事件

  • @Jack `button.addEventFilter(KeyEvent.ANY, Event::consume)`。 (5认同)

Sam*_*ipp 5

您可以使用该button.setFocusTraversable()方法(docs)。这可以防止按钮自动聚焦,例如通过按TAB

Button button = new Button("Some Action");
button.setFocusTraversable(false);
button.setOnAction(event -> System.out.println("Some action called!"));
Run Code Online (Sandbox Code Playgroud)