代码之家  ›  专栏  ›  技术社区  ›  Ian Fellows

获取JFrame的实际当前位置

  •  1
  • Ian Fellows  · 技术社区  · 14 年前

    question .

    我尝试过使用ComponentListener,但是使用这种方法,子对象只在父对象停止时移动,而我希望子对象在父对象在屏幕上拖动时移动。

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

    2 回复  |  直到 7 年前
        1
  •  0
  •   Warlax    14 年前

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

    如果看到“lag”或在主窗口停止前它没有重新定位,请尝试通过在重新定位后在第二个窗口上调用repaint()和/或将重新定位代码放入SwingUtilities.invokeLater(…)块中来强制Swing重新绘制:

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

    如果这有帮助,请告诉我。

        2
  •  0
  •   Anthony    14 年前