gpt4 book ai didi

java - 有没有一种聪明的方法可以避免 JavaFX 中的嵌套事件?

转载 作者:行者123 更新时间:2023-11-30 02:11:44 25 4
gpt4 key购买 nike

我有一个形状,我想按以下方式缩放:

  1. 用户将鼠标移到形状上
  2. 他们点击 Control 键
  3. 他们使用鼠标滚动来相应地放大和缩小。

这就是我解决这个问题的方法:(我不包括我的方法的实现,因为唯一的想法,而不是实际的实现,是这个问题的主题):

public void addScaling(Shape shape)
{
shape.setOnMouseEntered(e ->
{
(shape.getScene()).setOnKeyPressed(e2 ->
shape.setOnScroll(e3 -> scalingMethod())
}

shape.setOnMouseExited(e ->
{
(shape.getScene()).setOnKeyPressed(null);
shape.setOnScroll(null);
}
}

但是,我对这段代码并不满意 - 它看起来很糟糕。
有没有更好的方法来解决这个问题?

最佳答案

据我所知,除非鼠标悬停在节点上,否则不会在节点上触发滚动事件。所以你所需要的只是

shape.setOnScroll(e -> {
if (e.isControlDown()) {
scalingMethod();
}
});

如果您确实需要检查鼠标是否位于形状上方,请执行

shape.setOnScroll(e -> {
if (e.isControlDown() && shape.isHover()) {
scalingMethod();
}
});

关于java - 有没有一种聪明的方法可以避免 JavaFX 中的嵌套事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49846824/

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