Unten ist ein Mock-up von Code, an dem ich gearbeitet habe.Get Layout-Einschränkungen für eine Komponente in Java Swing
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);
}
}
In Container gibt es Verfahren
public void add(Component comp, Object constraints)
Gibt es eine Möglichkeit, dass wir programmatisch die constraints
erhalten können, die wir setzen, wie getConstraints(...)
so, dass wir es für eine spätere Verwendung nutzen kann?
In meinem Code möchte ich es verwenden, um eine alte Komponente durch eine neue an der gleichen Stelle zu ersetzen.
Was muss ich tun, nachdem
Object constraintsForNamePanel =
, um die Einschränkungen für namePanel
zu bekommen.
Derzeit bin ich mit
pane.add(newNamePanel, "cell 1 1,growx");
Es funktioniert, aber das Problem ist, ich bin mit WindowsBuilder
für UI und meine UI ist wie zu ändern, wenn ich neue Komponenten zum pane
hinzufügen und I don‘ t wollen die Einschränkungen kopieren und einfügen.