JLabels werden nicht angezeigt

DaCrazyJavaExpert

Bekanntes Mitglied
Hallo,
bei meinem Code werden irgendwie die Labels mit Bildern nicht angezeigt, kann mir jemand helfen? Ich finde den Fehler irgendwie nicht und der compiler zeigt mir auch keinen Fehler an. Das JLabel mit dem Text "MESSAGE" wird allerdings angezeigt, in der mitte. Hab ich den Pfad eventuell falsch eingegeben? 🙁
Ich hab die Bilder im Ordner images liegen. welcher im project involviert ist.
Hier der Code des Guis:
Java:
package de.m_ver.minigamecollector.scheresteinpapier;

import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class SchereSteinPapierGUI extends JFrame {
    public SchereSteinPapierGUI() {
        super("Schere Stein Papier");
        this.setSize(550, 735);
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);
        this.setLocation(450, 0);
        this.initialisiereKomponenenten();
        this.ordneKomponenten();
        this.setVisible(true);
    }
    private JLabel labelBackground;
    private JLabel labelScissors;
    private JLabel labelStone;
    private JLabel labelPaper;
    private JLabel labelMessage;
    private ImageIcon iconBackground;
    private ImageIcon iconScissors;
    private ImageIcon iconStone;
    private ImageIcon iconPaper;
 
    private void initialisiereKomponenenten() {
        this.labelBackground = new JLabel(this.iconBackground);
        this.labelScissors = new JLabel(this.iconScissors);
        this.labelStone = new JLabel(this.iconStone);
        this.labelPaper = new JLabel(iconPaper);
        this.labelMessage = new JLabel("MESSAGE");
        this.iconBackground = new ImageIcon("images/sky.png");
        this.iconScissors = new ImageIcon("images/schere.png");
        this.iconStone = new ImageIcon("images/stone.png");
        this.iconPaper = new ImageIcon("images/papier.png");
    }
    private void ordneKomponenten() {
    this.getContentPane().setLayout(new GridBagLayout());
    GridBagConstraints c = new GridBagConstraints();
    c.fill = GridBagConstraints.HORIZONTAL;
    c.insets = new Insets(0, 0, 0, 0);
    c.gridx = 0;
    c.gridy = 0;
    c.gridwidth = 20;
    c.gridheight = 60;
    this.getContentPane().add(labelBackground, c);
    c.gridx = 4;
    c.gridy = 4;
    c.gridwidth = 6;
    c.gridheight = 6;
    this.getContentPane().add(labelScissors, c);
    c.gridx = 8;
    this.getContentPane().add(labelStone, c);
    c.gridx = 16;
    this.getContentPane().add(labelPaper, c);
    c.gridx = (int) 2.5;
    c.gridy = 50;
    c.gridwidth = 7;
    c.gridheight = 15;
    this.getContentPane().add(labelMessage, c);
    }
}

Und hier, falls es hierran liegt, was ich für sehr unwahrscheinlich halte, die Main:
Java:
public class Main {

    public static void main(String[] args) {
        SchereSteinPapierGUI schereSteinPapierGUI = new SchereSteinPapierGUI();
    }

}

Wenn ihr Fragen bezüglich meiner Frage habt, stellt sie bitte, ich möchte schnellstmöglich weiterarbeiten 😀. Danke!!!!
 
Moin,

wo wird denn 'initialisiereKomponenten' und 'ordneKomponenten' aufgerufen ??
wo ist der Aufruf, der die GUI anzeigt (...setVisible) ??

VG Klaus
 
wo wird denn 'initialisiereKomponenten' und 'ordneKomponenten' aufgerufen ??
wo ist der Aufruf, der die GUI anzeigt (...setVisible) ??
Steht alles im Konstruktor.
Ich würde erstmal die Bilder durch einen eindeutigen Text ersetzen, um zu klären, ob das Laden der Bilder fehlschlägt oder ein Layoutproblem vorliegt. So auf den ersten Blick überlagern sich die JLabels teilweise, d. h. sie besetzen dieselben Zellen. Ich weiss nicht, wie ein GridBagLayout damit umgeht.
 
Steht alles im Konstruktor.
Ich würde erstmal die Bilder durch einen eindeutigen Text ersetzen, um zu klären, ob das Laden der Bilder fehlschlägt oder ein Layoutproblem vorliegt. So auf den ersten Blick überlagern sich die JLabels teilweise, d. h. sie besetzen dieselben Zellen. Ich weiss nicht, wie ein GridBagLayout damit umgeht.
Also ich wollte das erste Bild als Hintegrund setzten. Die anderen Bilder sollten auf dem Hintergrund "liegen" genauso wie das eine Textlabel. Aber ich probiers mal mit nur text vorerst, Danke
 

Neue Themen


Zurück
Oben