gpt4 book ai didi

JAVAFX : mouseOver and delay?

转载 作者:行者123 更新时间:2023-12-02 09:47:57 27 4
gpt4 key购买 nike

我希望用户将鼠标悬停在对撞机(只是一个透明矩形)上超过 2 或 3 秒时能够看到描述菜单。我目前正在使用 javaFX 扩展。

我将程序设置为每当我将鼠标悬停在对撞机上时,它都会播放声音效果,但我希望它能够简要描述他们悬停在其上的对象(如果他们将鼠标悬停在该对象上)至少2-3秒。如果这是有道理的。

benCafCol.addEventHandler(MouseEvent.MOUSE_ENTERED, new EventHandler<MouseEvent>() 
{
@Override
public void handle(MouseEvent e)
{
mediaPlayer.play();
benCafBox.setLayoutX(0);
benCafBox.setLayoutY(0);
benCafBox.setWidth(320);
benCafBox.setHeight(35);
}
});

benCafCol.addEventHandler(MouseEvent.MOUSE_EXITED, new EventHandler<MouseEvent>()
{
@Override
public void handle(MouseEvent e)
{
mediaPlayer.stop();

//default terms

benCafBox.setLayoutX(5);
benCafBox.setLayoutY(5);
benCafBox.setWidth(310);
benCafBox.setHeight(25);
}
});

这个可以编译并且可以工作,我只是想让它做我之前提到的事情。

最佳答案

使用 PauseTransition :

Animation delay = new PauseTransition(Duration.seconds(2));
delay.setOnFinished(e -> {
mediaPlayer.play();
benCafBox.setLayoutX(0);
benCafBox.setLayoutY(0);
benCafBox.setWidth(320);
benCafBox.setHeight(35);
});

benCafCol.addEventHandler(MouseEvent.MOUSE_ENTERED,
e -> delay.playFromStart());

benCafCol.addEventHandler(MouseEvent.MOUSE_EXITED, e -> {
delay.stop();

mediaPlayer.stop();

//default terms

benCafBox.setLayoutX(5);
benCafBox.setLayoutY(5);
benCafBox.setWidth(310);
benCafBox.setHeight(25);
});

请注意,持续时间javafx.util.Duration ,而不是 java.time.Duration。

关于JAVAFX : mouseOver and delay?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56519220/

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