JAVAFX:mouseOver和延迟?

时间:2019-06-10 00:02:30

标签: java delay boolean-logic

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

我将程序设置为每当我将鼠标悬停在对撞机上时,它将起到声音效果,但是我希望它能简要说明它们将鼠标悬停在该对象上的情况,前提是将鼠标悬停在该对象上至少2-3秒。如果这样的话。


<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Staff;
class StaffController extends Controller
{
    public function index()
    {
        $currentdate = date('Y-m-d  H:i:s');
        $trialusers=Staff::all('id','email','created_at','trial')->where('trial',1);
        $datediff = date_diff($trialusers['created_at'],$currentdate);
        return $datediff;
    }
}


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

2 个答案:

答案 0 :(得分:0)

使用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);
});

请注意,Durationjavafx.util.Duration,而不是java.time.Duration。

答案 1 :(得分:0)

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);
});

这有效!