Ich bin ein GUI-Layout für meine Anwendung mit dem Gitter Tasche und ich versuche, mit einer Funktion zum Layout jedes Element zu kommen, so dass ich nicht wieder eingeben müssen gleiche Gittertasche Code immer und immer wieder. Ich möchte diesen Code neu zu schreiben:Java-Funktion zum Erstellen von GUI-Panel
GridBagLayout gridbag = new GridBagLayout();
GridBagConstraints bc = new GridBagConstraints();
this.setLayout(gridbag);
bc.fill = GridBagConstraints.HORIZONTAL;
bc.anchor = GridBagConstraints.WEST;
bc.insets = new Insets(0, 10, 10, 0);
bc.gridx = 0;
bc.gridy = 0;
bc.gridwidth = 1;
this.add(programNameLabel, bc);
so, dass sie eine Funktion wie diese Aufruf geschrieben werden kann:
labelPosition(GridBagConstraints.HORIZONTAL, GridBagConstraints.WEST, 0, 10, 10, 0, 0, 0, 1, programNameLabel);
Hier ist die Funktion, die ich für die Aufgabe geschrieben haben.
protected void labelPosition(int axis, int direction, int insetOne, int insetTwo, int insetThree, int insetFour, int gridX, int gridY, int gridWidth, JLabel name)
{
GridBagLayout gridbag = new GridBagLayout();
GridBagConstraints bc = new GridBagConstraints();
this.setLayout(gridbag);
bc.fill = axis;
bc.anchor = direction;
bc.insets = new Insets(insetOne, insetTwo, insetThree, insetFour);
bc.gridx = gridX;
bc.gridy = gridY;
bc.gridwidth = gridWidth;
this.add(name, bc);
}
Jetzt kompiliert es, aber wenn ich es laufe, funktioniert es nicht. Alle Labels werden in einer einzigen Zeile und nicht nach dem Layout angezeigt, nach dem ich suche.
Ist was ich versuche zu tun einfach möglich oder fehle ich etwas in meinem Code ?? Irgendwelche Vorschläge?
Ich sehe. Ich lasse den Aufruf von GridBagLayout() in der Funktion, in der ich meine labelPosition() -Funktion aufruft, und den Aufruf von Constraints() nur zu der neuen Funktion verschieben. Ich bin froh, dass es geklappt hat. Das hat ungefähr 100 Codezeilen aus dieser Datei herausgeworfen und sie viel lesbarer gemacht. Danke für den Andreas. – tworley1977