mehrere Bilder in ein JFrame mit BorderLayout setzen

manu8

Grünschnabel
Hallo,

ich bin neu hier und habe vor ein paar Wochen damit begonnen mich intensiver mit Java zu beschäftigen.

Momentan erstelle ich eine GUI, in welcher ich mehrere Bilder in ein JFrame mit
BorderLayout setzen möchte.
Bisher klappt es nur mit einem Bild, wenn ich ein JLabel erstelle und dort das ImageIcon hinzufüge und anschließend das JLabel in das JFrame.

Doch mit mehreren Bildern, fehlt mir einfach der richtige Ansatz, ich hab es in
Richtung JPanel versucht, aber ohne Erfolg.

Vielen Dank für hilfreiche Tipps
 
Herzlich willkommen im Forum manu8.

Wir können dir sicherlich besser helfen wenn du deinen Quelltext auch postest.
Dazu verwendest du am besten die Java-Codetags, also vor deinen Quellcode da zwischen schreiben:
[code=java][/code]

Ich versuche mich dennoch mal so an deinem Problem.
Wenn du add, mit deinem Bild als Parameter aufrufst, gibst du dann auch an in welchem Bereich des BorderLayouts es angezeigt werden soll?
Folgender Quelltext fügt das Bild z.B. zentral ein:

Java:
fenster.add(picture, BorderLayout.CENTER);

Ausser Center gibt es auch noch NORTH, SOUTH, EAST und WEST
 
Momentan sieht der betreffende Teil des Codes wie folgt aus:



Java:
JPanel im = new JPanel(new GridLayout(2, 2));
        JLabel Image = new JLabel();
        ImageIcon image = new ImageIcon("k0.png");
        Image.add(new JLabel(image));
        Image.setIcon(image);        
        im.add(Image);      

        JLabel Image1 = new JLabel();
        ImageIcon image1 = new ImageIcon("k0.png");
        Image1.add(new JLabel(image1));
        Image1.setIcon(image1);
        im.add(Image1);
        
        JLabel Image2 = new JLabel();
        ImageIcon image2 = new ImageIcon("k0.png");
        Image2.add(new JLabel(image2));
        Image2.setIcon(image2);        
        im.add(Image2);     
        
        spielFeld.add(im, BorderLayout.CENTER);        
        spielFeld.setVisible(true);


so wie in diesem Code sollte aber letzendlich das JFrame nicht aussehen. Die Bilder sollten direkt aneinandergereiht sein.
 
ich hab jetzt eine Lösung gefunden.
Ich habe einfach die ganzen Bilder in ein JPanel mit FlowLayout() gepackt, dann das JPanel in eine Box und die Box ins JFrame.

So bleiben die Bilder auch zusammen, wenn ich das Fenster vergrößere.

Mein Programm ist jedoch noch lange nicht fertig.
Werde sicher noch öfter auf Euch zurückkommen müssen.

Auf jedenfall Danke für die schnelle Antwort
 
Ich habe mal deinen Code mit nem JFrame als spielFeld getestet. Dabei wurde ein Bild unten angezeigt.
Das liegt allerdings am GridLayout. Durch die angabe mit 2,2 macht der dir zwei Reichen und zwei 3Spalten. Wenn du stattdessen new JPanel(new GridLayout(1, 3)); verwendest werden die Bilder nebeneinander angezeigt.
 
Zurück