我是Java编程的新手,所以这个问题对很多人来说可能听起来很愚蠢。我正在努力让自己熟悉JavaFX事件处理机制。
我正在开发一个GUI,我想要一个按钮在点击时以及按下Enter键时执行相同的功能。
我可以执行以下操作吗?
public class ButtonHandler implements EventHandler<ActionEvent>
{
somefunction();
}
然后将它用于KeyEvent&amp;的MouseEvent
button.setOnMouseClicked(new ButtonHandler);
button.setOnKeyPressed(new ButtonHandler);
答案 0 :(得分:1)
只要您不需要特定事件的任何信息(例如鼠标坐标或按下的键),您就可以
EventHandler<Event> handler = event -> {
// handler code here...
};
然后
button.addEventHandler(MouseEvent.MOUSE_CLICKED, handler);
button.addEventHandler(KeyEvent.KEY_PRESSED, handler);
当然,您也可以将实际工作委托给常规方法:
button.setOnMouseClicked(e -> {
doHandle();
});
button.setOnKeyPressed(e -> {
doHandle();
});
// ...
private void doHandle() {
// handle event here...
}