gpt4 book ai didi

java - 在 JavaFX 中对 MouseEvent 和 KeyEvent 使用相同的 EventHandler?

转载 作者:行者123 更新时间:2023-12-01 10:25:16 24 4
gpt4 key购买 nike

我是 Java 编程新手,所以这个问题对于这里的许多人来说可能听起来很愚蠢。我正在努力让自己熟悉 JavaFX 事件处理机制。

我正在开发一个 GUI,我希望有一个按钮在单击时以及按下 Enter 键时执行相同的功能。

我可以执行以下操作吗?

public class ButtonHandler implements EventHandler<ActionEvent>
{
somefunction();
}

然后将其用于 KeyEvent 和 MouseEvent

button.setOnMouseClicked(new ButtonHandler);
button.setOnKeyPressed(new ButtonHandler);

最佳答案

只要您不需要特定事件中的任何信息(例如鼠标的坐标或按下的键),您就可以这样做

EventHandler<Event> handler = event -> {
// handler code here...
};

然后

button.addEventHandler(MouseEvent.MOUSE_CLICKED, handler);
button.addEventHandler(KeyEvent.KEY_PRESSED, handler);

当然,您也可以将实际工作委托(delegate)给常规方法:

button.setOnMouseClicked(e -> {
doHandle();
});
button.setOnKeyPressed(e -> {
doHandle();
});

// ...

private void doHandle() {
// handle event here...
}

关于java - 在 JavaFX 中对 MouseEvent 和 KeyEvent 使用相同的 EventHandler?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35383656/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com