使用滚动窗格和可拖动jpanel的Java gridbaglayout

使用滚动窗格和可拖动jpanel的Java gridbaglayout,java,swing,draggable,gridbaglayout,Java,Swing,Draggable,Gridbaglayout,我在带有滚动窗格的jpanel上使用gridbaglayout,一切正常。稍后在我的代码中,我使用约束(x,y)将另一个jpanel添加到同一个面板中,该面板位于已经存在的所有其他面板之上,使用索引,这也可以正常工作。这个添加的jpanel使用一个监听器让我拖动面板,它也可以工作,但我的问题是,当我滚动或调整jframe的大小时,它会将jpanel放回我拖动它之前的位置。为什么? 这个添加的jpanel使用一个监听器让我拖动面板,它也可以工作,但我的问题是,当我滚动或调整jframe的大小时,它

我在带有滚动窗格的jpanel上使用gridbaglayout,一切正常。稍后在我的代码中,我使用约束(x,y)将另一个jpanel添加到同一个面板中,该面板位于已经存在的所有其他面板之上,使用索引,这也可以正常工作。这个添加的jpanel使用一个监听器让我拖动面板,它也可以工作,但我的问题是,当我滚动或调整jframe的大小时,它会将jpanel放回我拖动它之前的位置。为什么?

这个添加的jpanel使用一个监听器让我拖动面板,它也可以工作,但我的问题是,当我滚动或调整jframe的大小时,它会将jpanel放回我拖动它之前的位置。为什么?

因为您使用的是布局管理器。调整框架大小时,将调用布局管理器,并根据布局管理器的规则为构件指定尺寸/位置


看看这本书。它将允许您在面板周围拖动组件,而无需重置组件的位置。

我将对此进行研究,但如果因为这个lol,我必须重做所有事情,那将是很糟糕的。我认为我已经解决了所有问题,直到我找到这个部分,谢谢。