在 Java Swing 中设置特定组件的工具提示延迟时间
2022-09-01 14:15:37
我正在尝试在 .我用来确定要显示的工具提示文本的方法相当占用CPU - 因此我只想在鼠标停止一小段时间后显示它 - 比如1秒。JEditorPane
我知道我可以使用,但是这将同时设置所有摆动组件上工具提示的延迟时间,我不想要这个。ToolTipManager.sharedInstance().setInitialDelay()
我正在尝试在 .我用来确定要显示的工具提示文本的方法相当占用CPU - 因此我只想在鼠标停止一小段时间后显示它 - 比如1秒。JEditorPane
我知道我可以使用,但是这将同时设置所有摆动组件上工具提示的延迟时间,我不想要这个。ToolTipManager.sharedInstance().setInitialDelay()
如果您想要的是使特定组件的工具提示消除延迟更长,那么这是一个不错的技巧:
(在 http://tech.chitgoks.com/2010/05/31/disable-tooltip-delay-in-java-swing/ 向技术人员致敬)
private final int defaultDismissTimeout = ToolTipManager.sharedInstance().getDismissDelay();
addMouseListener(new MouseAdapter() {
public void mouseEntered(MouseEvent me) {
ToolTipManager.sharedInstance().setDismissDelay(60000);
}
public void mouseExited(MouseEvent me) {
ToolTipManager.sharedInstance().setDismissDelay(defaultDismissTimeout);
}
});
好吧,我建议在另一个线程上执行CPU密集型任务,这样它就不会中断正常的GUI任务。
这将是一个更好的解决办法。(而不是试图规避问题)
*编辑*您可以计算 中每个单词的 tootips,并将它们存储在 .然后,您所要做的就是访问tootip,如果它发生了变化。JEditorPane
Map
Map
理想情况下,人们不会同时移动鼠标和打字。因此,您可以在文本更改时计算嘟嘟声,只需从 on 上拉出它们即可。Map
mouseMoved()