Hallo zusammen
Ich bin nun seit 2 Tagen wie wild zu versuchen dynamisch Textfelder und Komboboxen in ein Panel zu erzeugen und diese noch schön auszurichten. Aber ich krieg die Krise! Es will mir einfach nicht schön gelingen.
Also es geht darum: Ich habe auf meinem JFrame ein Panel. Über ein Button auf dem Frame soll in diesem Panel dynamisch Komponenten erstellt werden. Und zwar sollte bei jedem Klick auf den Button, in einer Reihe, ein JTextField eine JComboBox und wieder ein JTextField erstellt werden.
Ich habe nun meinen Code soweit, dass die Komponenten erstellt werden, aber beim zweiten Klick, verteilt mir der Layout Manager die neuen Panels auf das ganze untere Panel. Wie umgehe ich das? Ich möchte ja eigentlich nur, dass das erste Sub-Panel zuoberst, das zweite gleich darunter usw. erstellt wird.
Hier mal mein jetziger Code:
Wäre riesig dankbar für jegliche Tipps.
Ich bin nun seit 2 Tagen wie wild zu versuchen dynamisch Textfelder und Komboboxen in ein Panel zu erzeugen und diese noch schön auszurichten. Aber ich krieg die Krise! Es will mir einfach nicht schön gelingen.
Also es geht darum: Ich habe auf meinem JFrame ein Panel. Über ein Button auf dem Frame soll in diesem Panel dynamisch Komponenten erstellt werden. Und zwar sollte bei jedem Klick auf den Button, in einer Reihe, ein JTextField eine JComboBox und wieder ein JTextField erstellt werden.
Ich habe nun meinen Code soweit, dass die Komponenten erstellt werden, aber beim zweiten Klick, verteilt mir der Layout Manager die neuen Panels auf das ganze untere Panel. Wie umgehe ich das? Ich möchte ja eigentlich nur, dass das erste Sub-Panel zuoberst, das zweite gleich darunter usw. erstellt wird.
Hier mal mein jetziger Code:
Java:
JPanel pnlIngredient = new JPanel();
pnlIngredient.setLayout(new FlowLayout());
pnlIngredient.setSize(600, 30);
pnlIngredient.add(new JTextField());
pnlIngredient.add(new JComboBox());
pnlIngredient.add(new JTextField());
this.pnlZutaten.setLayout(new BoxLayout(pnlZutaten, WIDTH));
this.pnlZutaten.add(pnlIngredient);
this.validate();
Wäre riesig dankbar für jegliche Tipps.