6 java swing multiple-monitors tooltip
我有一个组件.组件的工具提示由setToolTipText()方法设置.在第一台显示器上一切正常.现在,当我将框架移动到第二个监视器时,工具提示显示在监视器的边缘(在监视器的一侧).这只发生在此组件的工具提示中.问题也出现在其他机器上.然而,我只用Vista测试过它.
为什么是这样?这是Swing中的错误吗?我该如何解决?
工具提示文本取决于鼠标光标位置.因此,我可以编辑代码并覆盖getToolTipText(MouseEvent e)方法.在开始更改代码之前,了解这个问题的原因真是太好了.
提前致谢.
Java bug数据库中有几个错误票据,似乎与此有关
JApplet中的JToolTip会将工具提示放在错误的监视器中
On作为另一个的副本被关闭,一个声称是固定的而另一个具有固定理解的集合.
一些用户发布的一种解决方法是
frame.pack();
frame.setLocation(location);
frame.setLocation(new Point(0, 0));
frame.setLocation(location);
Run Code Online (Sandbox Code Playgroud)
kieron.wilkinson
这样做的原因是
setLocation()最终callesComponent.reshape()反过来调用一个被调用的方法Component.notifyNewBounds(boolean resized, boolean moved),该方法 遍历 每个组件边界的组件层次结构设置.默认情况下,这是"懒惰"完成的,但在移动窗口之前不会设置它们.上面的代码强制它们被设置.
这也是在将窗口从一个屏幕拖动到另一个屏幕后工具提示开始正常工作的原因.
| 归档时间: |
|
| 查看次数: |
1936 次 |
| 最近记录: |