JPanel Bild positionieren?

1 Antwort

Vom Beitragsersteller als hilfreich ausgezeichnet

Die Positionierung von Elementen wird in Swing über Layout Manager vorgenommen (Drittanbieter-Alternativen habe ich hier schon einmal aufgelistet). Von dem Versuch einer absoluten Positionierung solltest du besser absehen, wenn deine Oberfläche flexibel / nutzerfreundlich bleiben soll.


Junski1 
Beitragsersteller
 19.01.2022, 14:34

Ok. Mein eigentlicher Plan war es ein Bild in eine andere Zeile als ein anderes Bild zu machen. Doch das hatte auch nicht funktioniert. Weißt du wie man das schafft

regex9  19.01.2022, 15:13
@Junski1

Du könntest ein BoxLayout verwenden.

var panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
panel.add(image1);
panel.add(image2);

Alle Komponenten in diesem Panel werden vom Layout auf der y-Achse angeordnet.

Dieses Panel könntest du nun in ein anderes Panel mit anderem Layout stecken oder in deinen Frame. Je nachdem, was du vorhast.

Junski1 
Beitragsersteller
 19.01.2022, 21:29
@regex9

Danke hat Funktioniert.

Junski1 
Beitragsersteller
 20.01.2022, 16:11
@Junski1

Doch was wenn ich Bild dann Text und dann Absatz machen möchte. Also z.B. panel.add(img1 + Text);

regex9  20.01.2022, 16:14
@Junski1

Du kannst Komponenten mit ihrem Layout schachteln. Zum Beispiel ein Panel mit FlowLayout, in dem Bild und Text liegen. Dieses Panel wiederum kann in ein Panel, welches seine Elemente via BoxLayout vertikal anordnet.

Junski1 
Beitragsersteller
 20.01.2022, 16:25
@regex9

Gibts da ein beispiel?

regex9  20.01.2022, 16:28
@Junski1

Nimm doch einfach mein obiges Snippet als Grundlage. Als erste Komponente fügst du eben nur kein Bild ein, sondern ein Panel, dem du Bild und Label (für den Text) zugefügt hast.