【问题标题】:ToolTip on second monitor is displayed at the edge of the monitor第二台显示器上的工具提示显示在显示器边缘
【发布时间】:2009-11-04 18:09:08
【问题描述】:

我有一个组件。组件的 ToolTip 由 setToolTipText() 方法设置。在第一台显示器上一切正常。现在,当我将框架移动到第二个监视器时,工具提示会显示在监视器的边缘(在第一个监视器的一侧)。这只发生在该组件的工具提示中。该问题也出现在其他机器上。然而,我只用 Vista 测试过。

这是为什么? 这是 Swing 中的错误吗? 我该如何解决?

工具提示文本取决于鼠标光标的位置。因此,我可以编辑代码并覆盖 getToolTipText(MouseEvent e) 方法。在开始更改代码之前,很高兴知道这个问题的原因是什么。

提前致谢。

【问题讨论】:

    标签: java swing tooltip multiple-monitors


    【解决方案1】:

    Java bug 数据库中有几个似乎与此相关的 bug 票,例如

    Tooltip issue when using dual monitor (dual head) configuration.

    JToolTip in JApplet will place tooltip in wrong monitor

    Problem with Action button tooltips with some multiple monitor configurations

    On 作为另一个副本关闭,一个声称已修复,另一个已修复-理解集。

    某个用户发布的一种解决方法是

    frame.pack();
    frame.setLocation(location);
    frame.setLocation(new Point(0, 0));
    frame.setLocation(location);
    

    kieron.wilkinson

    这行得通的原因是 setLocation() 最终调用 Component.reshape() 反过来 调用一个名为的方法 Component.notifyNewBounds(boolean resized, boolean moved),其中 跨越组件层次结构 设置每个组件的界限。经过 默认这是“懒惰”完成的,但是 他们没有在窗口之前设置 感动。上面的代码迫使他们 设置。

    这也是工具提示在将窗口从一个屏幕拖到另一个屏幕后开始正常工作的原因。

    【讨论】:

    • 谢谢,我想你有一些工作要研究这个。我尝试将代码更改为 getToolTipText,它在第一次测试后运行良好。
    • 好吧,谷歌搜索并阅读了三个错误报告和关于它们的帖子。然后写答案。没问题
    猜你喜欢
    • 1970-01-01
    • 2012-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-08
    • 2017-11-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多