因此,我试图提供一个可以在标题栏附近拖动的窗口。由于它在另一个框架内,因此我需要手动执行此操作。这就是鼠标侦听器的代码。
titleBar.addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent e)
{
currentMouseEvent = e;
dragging = true;
}
public void mouseReleased(MouseEvent e)
{
dragging = false;
currentMouseEvent = null;
}
});
这是更新循环的代码。 (这在另一个线程的while循环中)
if (dragging)
{
try
{
setPosition(currentMouseEvent.getXOnScreen(), currentMouseEvent.getYOnScreen());
}
catch(NullPointerException e)
{
//do nothing
Main.SoundSystem.fatalError();
}
}
我知道需要更改setPosition以跟踪鼠标在标题栏上的位置,但是我想对此进行测试。问题是它会移动一次,然后再拖动鼠标一次。这是为什么?
最佳答案
因为不更新currentMouseEvent
,所以将窗口一直移动到按下鼠标的位置。
在拖动过程中,您将需要MouseMotionListener
来获取新事件。
关于java - 为什么不能在标题栏上拖动窗口?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10974180/