我在玩JavaFX的< code>Tooltip。我意识到对我个人来说,悬停在某个东西上和工具提示实际出现之间的延迟太长了。从API中可以看出:
通常,当鼠标移动到控件上时,工具提示被“激活”。工具提示从“激活”到实际显示之间通常会有一些延迟。细节(如延迟量等)留给皮肤实现。
经过进一步调查,我无法找到任何控制延迟的可能性。JavaFX CSS Reference没有关于延迟时间的信息,getCssMetaData()
的运行时评估也没有帮助。
我知道有一种方法可以通过onmouseintered(…)
和onmouseexted(…)手动控制工具提示,但真的没有其他方法吗?还是我错过了一个显而易见的解决方案?
这是一个现有的功能要求:JDK-8090477可定制的工具提示的可见性定时。
该功能请求目前计划集成到Java 9中。我链接的问题附带了一个补丁,您可以应用该补丁,以便在早期Java版本中获得此功能。
您的另一个选择是使用以下技术之一创建自己的弹出控件:
在Java9及更高版本中,您可以
Tooltip tooltip = new Tooltip("A tooltip");
tooltip.setShowDelay(Duration.seconds(3));
还有一个< code>hideDelay属性,用于工具提示出现和再次隐藏之间的延迟。< code>showDelay的默认值为1秒,而< code>hideDelay的默认值为200毫秒。
我使用下一个黑客通过反射来实现这一点
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();
}
}
我在使用JavaFX时遇到了以下问题。 在Java Scene Builder中使用样式表works重新定义工具提示样式。 在eclipse中重新定义执行时的工具提示样式,在由scene builder生成的FXML文件中包含相同的样式表 不起作用(任何其他属性重定义都起作用)。 使用代码指令在eclipse中使用相同样式表重新定义执行时的工具提示样式: 编辑:换句话说,我想成为一个在FXML文件
问题内容: 我有一个JComponent可以自己绘制各种形状。我检测到鼠标何时进入这些形状之一,并相应地更改工具提示。 我遇到的问题是: 用户在形状上跟踪鼠标时,工具提示不会跟随鼠标。它停留在最初设置的位置,然后仅在其他形状更改工具提示时才跳转。 工具提示大约需要一秒钟的时间,但我希望它立即显示。 有人可以建议一种无需编写自定义工具提示机制即可获得这些行为的方法吗? 问题答案: 看一下ToolTi
问题内容: 我在玩JavaFX的。我个人认为,将鼠标悬停在某物和实际显示的工具提示之间的延迟太长了。在API中的外观显示: 通常,当鼠标移至控件上方时,工具提示将被“激活”。在工具提示被“激活”到实际显示之间通常会有一些延迟。细节(例如延迟量等)留给Skin实现。 经过进一步的调查,我找不到控制延迟的任何可能性。在JavaFX的CSS参考没有关于延迟时间和运行时间,评价信息没有帮助。 我知道,有一
我为按钮设置了工具提示,但它看起来很小(字体大小),我如何使它更大?我试过,但它不起作用,为什么?我如何使字体更大?谢谢大家!
如果我的标签包含文本太长,并且当我用鼠标悬停在标签上时,我想要一个显示整个标签文本的工具提示。是否可以在 SceneBuilder 中执行此操作,或者我必须以编程方式对所有标注执行此操作?
该站点有带有动态内容的工具提示的链接。我正在使用jquery UI工具提示来显示它们。我不希望每次用户不小心将光标放在链接上时,都显示工具提示。我想要显示工具提示只有当它延迟光标在链接上几秒钟。这应该像Gmail一样,当你悬停在发件人的名字上时,你会看到关于他的信息(见图)。 我需要工具提示,用户可以与之交互,所以我使用了这段代码(感谢Antonimo https://stackoverflow.