6

以下は、私が取り組んできたコードのモックアップです。



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)

後で使用できるconstraintsように、設定した をプログラムで取得する方法はありますか?getConstraints(...)

私のコードでは、同じ場所で古いコンポーネントを新しいコンポーネントに置き換えるために使用したいと考えています。

私はその後何をしなければなりませんか

 Object constraintsForNamePanel = 

の制約を取得しますnamePanel

現在、私は使用しています

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

それは機能していますが、問題はWindowsBuilderUIに使用していて、新しいコンポーネントをに追加するとUIが変更されpane、制約をコピーして貼り付けたくないことです。

4

1 に答える 1