gpt4 book ai didi

java - 在 Javafx 中,mouseReleased 事件是否总是在 mouseClicked 之前发生?

转载 作者:塔克拉玛干 更新时间:2023-11-01 23:00:50 29 4
gpt4 key购买 nike

哪个事件先触发?它取决于初始化顺序吗?它取决于其他东西吗?这背后的原理是什么?

pane.setOnMouseClicked(e -> {
doSomething();
});

pane.setOnMouseReleased(e -> {
doSomething();
});

最佳答案

您实际上是在向您的 Node 添加一个事件处理程序, 它处理特定类型的 MouseEvent . (也可以看看 Handling JavaFX Events)

如果你看一下MouseEvent您将看到的文档:

MOUSE_PRESSED

public static final EventType<MouseEvent> MOUSE_PRESSED

This event occurs when mouse button is pressed. This activates a press-drag-release gesture, so all subsequent mouse events until the button is released are delivered to the same node.

MOUSE_RELEASED

public static final EventType<MouseEvent> MOUSE_RELEASED

This event occurs when mouse button is released. It is delivered to the same node where the button has been pressed which activated a press-drag-release gesture.

MOUSE_CLICKED

public static final EventType<MouseEvent> MOUSE_CLICKED

This event occurs when mouse button has been clicked (pressed and released on the same node). This event provides a button-like behavior to any node. Note that even long drags can generate click event (it is delivered to the top-most node on which the mouse was both pressed and released).

所以回答你的问题是,事件的顺序总是:

MOUSE_PRESSED ->  MOUSE_RELEASED -> MOUSE_CLICKED

关于java - 在 Javafx 中,mouseReleased 事件是否总是在 mouseClicked 之前发生?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52911646/

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