java—第二个监视器上的工具提示显示在监视器的边缘

kfgdxczn  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(356)

我有一个部件。组件的工具提示由settooltiptext()方法设置。在第一个监视器上一切正常。现在,当我将框架移动到第二个监视器时,工具提示将显示在监视器的边缘(在第一个监视器的一侧)。这只在该组件的工具提示下发生。这个问题也出现在其他机器上。不过,我只是用vista测试了一下。
为什么会这样?这是一只正在摇摆的虫子吗?我该怎么修?
工具提示文本取决于鼠标光标的位置。因此,我可以编辑代码并重写gettooltipext(mouseevent e)方法。在开始更改代码之前,最好知道这个问题的原因是什么。
提前谢谢。

xj3cbfub

xj3cbfub1#

在javabug数据库中有几个bug标签似乎与此相关。
使用双监视器(双头)配置时出现工具提示问题。
japplet中的jtooltip将在错误的监视器中放置工具提示
某些多监视器配置的操作按钮工具提示有问题
在上作为另一个的副本关闭,一个声称是固定的,另一个有固定集。
某个用户发布的一个解决方法是

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

基隆·威尔金森
这样做的原因是 setLocation() 最终打电话给 Component.reshape() 它反过来调用一个名为 Component.notifyNewBounds(boolean resized, boolean moved) ,它横穿设置每个组件边界的组件层次结构。默认情况下,这是“懒散地”完成的,但在移动窗口之前不会设置它们。上面的代码强制设置它们。
这也是将窗口从一个屏幕拖到另一个屏幕后工具提示开始正常工作的原因。

相关问题