Java MigLayout似乎覆盖了setLocation-如何避免这种情况?

Java MigLayout似乎覆盖了setLocation-如何避免这种情况?,java,swing,layout,miglayout,Java,Swing,Layout,Miglayout,使用JPanel使用migloayout,当我使用setLocation(x,y)时在该面板内拖动另一个JPanel时,组件的位置将重置为绝对定位组件约束(在添加组件时指定)。例如: this.add(content, "pos 50 50"); ... //dragging content.setLocation(x,y); 当我这样做时,它成功地更改了内容的x/y位置,但一旦外部(此)面板调整大小或验证,它就会再次重置 我尝试了以下代码,但面板在拖动时根本不会移动: migLayout.s

使用
JPanel
使用
migloayout
,当我使用
setLocation(x,y)时在该面板内拖动另一个
JPanel
时,组件的位置将重置为绝对定位组件约束(在添加组件时指定)。例如:

this.add(content, "pos 50 50");
...
//dragging
content.setLocation(x,y);
当我这样做时,它成功地更改了内容的x/y位置,但一旦外部(此)面板调整大小或验证,它就会再次重置

我尝试了以下代码,但面板在拖动时根本不会移动:

migLayout.setComponentConstraints(content, "pos " + x + " " + y);
我怎样才能避开这件事?
谢谢。

如果希望Miglayout不放置关键字(如拖动时),请在组件约束外部添加关键字


更一般的答案就像克利奥帕特拉所说的

MigLayout没有什么特别之处-LayoutManager应该在其认为合适的情况下定位组件(而客户端代码不是),对于拖动的特殊情况,您需要实现一些逻辑,在拖动的开始/结束时从Manager控件中移除/重置拖动的组件,可能会将其移动到LayeredPane的另一层,并在最后重置约束(但没有尝试)