gpt4 book ai didi

java - 获取 JFrame 的实际当前位置

转载 作者:行者123 更新时间:2023-12-01 05:55:50 27 4
gpt4 key购买 nike

我正在尝试创建一个(子)JFrame,它从第二个(父)JFrame 的一侧滑出。目标是让子级在移动时跟随父级,并对调整大小事件做出响应。这个和这个question有点关系.

我尝试过使用 ComponentListener,但使用此方法,子级仅在父级停止后才移动,而我希望子级在父级在屏幕上拖动时移动。

我尝试的另一个选择是启动一个新的刷新线程,使用 getLocation() 或 getLocationOnScreen() 不断更新 child 的位置,但延迟与 ComponentListener 相同。

有没有办法即使在拖动过程中也能获取 JFrame 的真实位置?或者如果没有,有没有办法获得一张纸从下面滑出并跟随框架的效果?

最佳答案

您应该使用 MouseAdapter 类的 mouseDragged(MouseEvent e) 方法。当您拖动主窗口时,您将收到许多 mouseDragged 事件 - 通过将第二个窗口移动到相对于主窗口位置的位置来处理每个事件。

如果您看到“滞后”或者直到主窗口停止才重新定位,请尝试通过在重新定位后在第二个窗口上调用 repaint() 和/或将重新定位代码放入 SwingUtilities 中来强制 Swing 重新绘制。 invokeLater(...) block :

SwingUtilities.invokeLater(new Runnable()
{
@Override
public void run()
{
// your logic here
}
});

请告诉我这是否有帮助。

关于java - 获取 JFrame 的实际当前位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3035054/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com