Grafik auf einem Frame

HarryXVI

Erfahrenes Mitglied
Hallo,
ich möchte auf meinem Frame diverse Bitmap-Grafiken anzeigen lassen. Grundsätzlich erschien es mir sinnvoll, dies mit JLabels zu realiseren. (Wenn hier schon der Fehler liegt, bitte Bescheid sagen).

Code:
ImageIcon akt_bild = new ImageIcon(verzeichnis + "\\Kartenbilder\\leer.bmp");
           jLabel1.setIcon(akt_bild);
           this.Repaint()

Irgendwie wird das Bild nicht angezeigt, sondern nur der "Text" des Labels. "this" bezieht sich auf ein Objekt vom Typ JFrame.

Was läuft falsch?
 
Hi,
also wenn ich das bei mir teste, dann funktioniert das einwandfrei. Ich bekomme sowohl den Text als auch das Icon angezeigt.

Mein Code:
Java:
JLabel label = new JLabel("Test");
label.setIcon(new ImageIcon("pfad/bild.jpg"));

Gruß

Fabio
 
Ich würde hier auf zwei Dinge testen :
1) falscher Pfad - zwischen absolutem System-Pfad und relativem JAR-Pfad gibt es Unterschiede
2) Datei nicht vorhanden - du hast die Anwendung mit einer IDE entwickelt und beim Export einen Fehler gemacht.
 
Ich habe es jetzt einmal mit .png-Dateien probiert und das Laden der Grafiken klappt. Es tut sich jetzt ein anderes Problem auf. Die 6 jLabels, in die die Grafiken geladen werden, sind laut NetBeans-Designeditor nebeneinander angeordnet, sodass obere und untere Kante parallel sind. Nach dem Laden sind jedoch immer das 3. und 5. Label nach unten versetzt. Was könnte die Ursache dafür sein?
 
Java:
 //Beim Programmstart
        Labels.put("lb1", jLabel1);
        Labels.put("lb2", jLabel2);
        Labels.put("lb3", jLabel3);
        Labels.put("lb4", jLabel4);
        Labels.put("lb5", jLabel5);
        Labels.put("lb6", jLabel6);
        Labels.put("lb7", jLabel7);
        
        for (int i=1; i<8; i++) {
            JLabel akt_lb = Labels.get("lb"+i);
            akt_lb.setText("");
        }

       // wenn es dann so weit ist
       // erst alle Label weiß machen
        for (int i=1; i<7; i++) {
                ImageIcon akt_bild = new ImageIcon(verzeichnis + "\\Kartenbilder\\leer.png");
                akt_lb = Labels.get("lb"+i);
                akt_lb.setIcon(akt_bild);
                }
        ImageIcon imComp = new ImageIcon(verzeichnis + "\\Kartenbilder\\leer.png", "");
        akt_lb = Labels.get("lb7");
        akt_lb.setIcon(imComp);
               
        // .png-Grafiken laden
        for (int i=1; i<7; i++) {
                ImageIcon akt_bild = new ImageIcon(pfad, "");
                akt_lb = Labels.get("lb"+i);
                akt_lb.setIcon(akt_bild);
                }

Zur Erklärung: "Labels" ist eine HashMap, die alle JLabels verwalten soll.
 
Ich würde sagen das dir der LayoutManager in die Quere kommt. Da NetBeans sicher nur mit den JLabels selbst und ohne die Grafiken rechnet wird es dir das ganze einfach falsch anzeigen.
 

Neue Beiträge

Zurück