获取JavaSwing中组件的布局约束

获取JavaSwing中组件的布局约束,java,swing,layout,constraints,miglayout,Java,Swing,Layout,Constraints,Miglayout,下面是我一直在研究的代码模型 public class Pane { private final JPanel pane; private JPanel namePanel; private final JTextField panIdField; public Pane() { pane = new JPanel(); pane.setLayout(new MigLayout("", "[][grow]", "[][][]

下面是我一直在研究的代码模型



public class Pane {

    private final JPanel pane;
    private JPanel namePanel;
    private final JTextField panIdField;

    public Pane() {
        pane = new JPanel();
        pane.setLayout(new MigLayout("", "[][grow]", "[][][][][]"));

        namePanel = new JPanel();
        pane.add(namePanel, "cell 1 1,growx");

        panIdField = new JTextField();
        pane.add(panIdField, "cell 1 2,growx");
        panIdField.setColumns(10);

    }

    public void replaceNameField(JPanel newNamePanel) {
        this.namePanel = newNamePanel;
        // Object constraintsForNamePanel = 
        pane.remove(namePanel);
        pane.add(newNamePanel, constraintsForNamePanel);
    }

}

容器中有方法

public void add(Component comp, Object constraints)
是否有任何方法可以通过编程获得我们设置的
约束
,比如
getConstraints(…)
,以便我们以后使用

在我的代码中,我希望使用它在同一位置用新组件替换旧组件

之后我要做什么

 Object constraintsForNamePanel = 
获取
名称面板
的约束

目前,我正在使用

pane.add(newNamePanel, "cell 1 1,growx");

它正在工作,但问题是我正在使用
WindowsBuilder
进行UI,当我向
窗格添加新组件时,我的UI会发生变化,我不想复制和粘贴约束。

得到了解决方案,我必须执行以下操作


public void replaceNameField(JPanel newNamePanel) {
     MigLayout layout = (MigLayout) pane.getLayout();
     Object constraintsForNamePanel = layout.getComponentConstraints(this.namePanel);
     pane.remove(this.namePanel);

      this.namePanel = newNamePanel;
      pane.add(newNamePanel, constraintsForNamePanel);
    }