java - 如何控制 JavaFX Tooltip 的延迟?

标签 java css javafx-8 fxml

我在玩JavaFX's Tooltip .我意识到,对我个人而言,将鼠标悬停在某物上与实际出现的工具提示之间的延迟太长了。 API 的外观显示:

Typically, the tooltip is "activated" when the mouse moves over a Control. There is usually some delay between when the Tooltip becomes "activated" and when it is actually shown. The details (such as the amount of delay, etc) is left to the Skin implementation.

经过进一步调查,我无法找到任何控制延迟的可能性。 JavaFX CSS Reference没有关于延迟时间的信息,并且 getCssMetaData() 的运行时评估也没有帮助。

我知道有一种方法可以通过 onMouseEntered(...)onMouseExited(...) 手动控制工具提示,但真的没有其他方法吗方法?还是我错过了一个明显的解决方案?

最佳答案

我通过反射使用下一个技巧

public static void hackTooltipStartTiming(Tooltip tooltip) {
    try {
        Field fieldBehavior = tooltip.getClass().getDeclaredField("BEHAVIOR");
        fieldBehavior.setAccessible(true);
        Object objBehavior = fieldBehavior.get(tooltip);

        Field fieldTimer = objBehavior.getClass().getDeclaredField("activationTimer");
        fieldTimer.setAccessible(true);
        Timeline objTimer = (Timeline) fieldTimer.get(objBehavior);

        objTimer.getKeyFrames().clear();
        objTimer.getKeyFrames().add(new KeyFrame(new Duration(250)));
    } catch (Exception e) {
        e.printStackTrace();
    }
}

关于java - 如何控制 JavaFX Tooltip 的延迟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26854301/

相关文章:

java - 在程序启动时将 main() 方法重定向到另一个方法有什么好处?

html - Div 元素自动大于指定值?

html - CSS 帮助 - 图像上的 div

Java 文件阅读器不工作,它不会运行代码位

java - XPage:我需要完整的堆栈跟踪

javascript - JavaScript 使用一次后没有悬停颜色

java - 尝试将项目添加到对话框,但它们没有显示

Javafx 在 TableView 中添加图像

BorderPane 中的 JavaFX-8 Canvas

java - 如何以编程方式在布局中居中进度条?