Label-Problem

Vxnc

Mitglied
Guten Abend! Ich würde gerne wissen, wieso mir meine Bilder die auf die Label-Klasse nicht ausgeführt wird. Habe schon so gut wie alles ausprobiert...

Hier sind alle wichtigen Klassen dafür:
Main:
Java:
package game;

import java.io.IOException;

public class CatanClass {

    public static void main(String[] args) throws IOException {
       
        new game.Gui();
        new game.Var();
        new game.MapCreator();
        new game.Label();

       

    }

}
Label:
Java:
package game;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;

import javax.swing.JLabel;

public class Label extends JLabel {

    private static final long serialVersionUID = 1279261974128862013L;

    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
       
        Graphics2D g2d = (Graphics2D) g;
        g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

        g.drawImage(Var.corn1, getXfromNum(Var.corns[0][0]), getYfromNum(Var.corns[0][0]), 200, 200, null);
        g.drawImage(Var.corn1, getXfromNum(Var.corns[1][0]), getYfromNum(Var.corns[1][0]), 200, 200, null);
        g.drawImage(Var.corn1, getXfromNum(Var.corns[2][0]), getYfromNum(Var.corns[2][0]), 200, 200, null);
        g.drawImage(Var.corn1, getXfromNum(Var.corns[3][0]), getYfromNum(Var.corns[3][0]), 200, 200, null);

        g.drawImage(Var.rock1, getXfromNum(Var.rocks[0][0]), getYfromNum(Var.rocks[0][0]), 200, 200, null);
        g.drawImage(Var.rock2, getXfromNum(Var.rocks[1][0]), getYfromNum(Var.rocks[1][0]), 200, 200, null);
        g.drawImage(Var.rock3, getXfromNum(Var.rocks[2][0]), getYfromNum(Var.rocks[2][0]), 200, 200, null);

        g.drawImage(Var.wood1, getXfromNum(Var.woods[0][0]), getYfromNum(Var.woods[0][0]), 200, 200, null);
        g.drawImage(Var.wood1, getXfromNum(Var.woods[1][0]), getYfromNum(Var.woods[1][0]), 200, 200, null);
        g.drawImage(Var.wood1, getXfromNum(Var.woods[2][0]), getYfromNum(Var.woods[2][0]), 200, 200, null);
        g.drawImage(Var.wood1, getXfromNum(Var.woods[3][0]), getYfromNum(Var.woods[3][0]), 200, 200, null);

        g.drawImage(Var.sheep1, getXfromNum(Var.sheeps[0][0]), getYfromNum(Var.sheeps[0][0]), 200, 200, null);
        g.drawImage(Var.sheep2, getXfromNum(Var.sheeps[1][0]), getYfromNum(Var.sheeps[1][0]), 200, 200, null);
        g.drawImage(Var.sheep3, getXfromNum(Var.sheeps[2][0]), getYfromNum(Var.sheeps[2][0]), 200, 200, null);

        g.drawImage(Var.clay1, getXfromNum(Var.clays[0][0]), getYfromNum(Var.clays[0][0]), 200, 200, null);
        g.drawImage(Var.clay2, getXfromNum(Var.clays[1][0]), getYfromNum(Var.clays[1][0]), 200, 200, null);
        g.drawImage(Var.clay3, getXfromNum(Var.clays[2][0]), getYfromNum(Var.clays[2][0]), 200, 200, null);
        g.drawImage(Var.clay4, getXfromNum(Var.clays[3][0]), getYfromNum(Var.clays[3][0]), 200, 200, null);


    }
   
    public int getXfromNum(int i) {
        int x = 1000;
        if (i == 0 || i == 5 || i == 10 || i == 15 || i == 19) {
            x = Var.screenwidth / 2 - 100;
        }
        if (i == 1 || i == 7 || i == 12 || i == 17) {
            x = Var.screenwidth / 2 - 150;
        }
        if (i == 2 || i == 8 || i == 13 || i == 18) {
            x = Var.screenwidth / 2 + 150;
        }
        if (i == 3 || i == 9 || i == 14) {
            x = Var.screenwidth / 2 - 300;
        }
        if (i == 5 || i == 11 || i == 16) {
            x = Var.screenwidth / 2 - 100;
        }
        System.out.println(x);
        return x;
    }

    public int getYfromNum(int i) {
        int y = 1000;

        if (i == 0)
            y = 0;
        if (i == 1 || i == 2)
            y = 100;
        if (i == 3 || i == 4 || i == 5)
            y = 200;
        if (i == 6 || i == 7)
            y = 300;
        if (i == 8 || i == 9 || i == 10)
            y = 400;
        if (i == 11 || i == 12)
            y = 500;
        if (i == 13 || i == 14 || i == 15)
            y = 600;
        if (i == 16 || i == 17)
            y = 700;
        if (i == 18)
            y = 800;

        System.out.println(y);
        return y;
    }

}
Var: (variablen)
Java:
package game;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.*;

public class Var {

    // GUI
        // WINDOWS
        static JFrame jf1;
        static JLabel lbl1;
   
        // VALUES
        static int screenheight=1000, screenwidth=1000;
   
    // MAP
        // FIELDS
        static BufferedImage corn1, corn2, corn3, corn4;
        static BufferedImage rock1, rock2, rock3;
        static BufferedImage wood1, wood2, wood3, wood4;
        static BufferedImage sheep1, sheep2, sheep3;
        static BufferedImage clay1, clay2, clay3, clay4;
        static BufferedImage desert;
       
        static int corns[][] = new int[4][1];
        static int rocks[][] = new int[3][1];
        static int woods[][] = new int[4][1];       
        static int sheeps[][] = new int[3][1];
        static int clays[][] = new int[4][1];
        static int deserts;
       
       
    public Var() throws IOException {   
       
        try{
       
            corn1 = ImageIO.read(new File("rsc/corn.png"));
            corn2 = ImageIO.read(new File("rsc/corn.png"));
            corn3 = ImageIO.read(new File("rsc/corn.png"));
            corn4 = ImageIO.read(new File("rsc/corn.png"));
           
            rock1 = ImageIO.read(new File("rsc/rock.png"));
            rock2 = ImageIO.read(new File("rsc/rock.png"));
            rock3 = ImageIO.read(new File("rsc/rock.png"));
       
            wood1 = ImageIO.read(new File("rsc/wood.png"));
            wood2 = ImageIO.read(new File("rsc/wood.png"));
            wood3 = ImageIO.read(new File("rsc/wood.png"));
            wood4 = ImageIO.read(new File("rsc/wood.png"));
           
            sheep1 = ImageIO.read(new File("rsc/sheep.png"));
            sheep2 = ImageIO.read(new File("rsc/sheep.png"));
            sheep3 = ImageIO.read(new File("rsc/sheep.png"));
           
            clay1 = ImageIO.read(new File("rsc/clay.png"));
            clay2 = ImageIO.read(new File("rsc/clay.png"));
            clay3 = ImageIO.read(new File("rsc/clay.png"));
            clay4 = ImageIO.read(new File("rsc/clay.png"));
           
            desert = ImageIO.read(new File("rsc/desert.png"));
           
        } catch (IOException e) {
        e.printStackTrace();
        System.out.println("Bilder konnten nicht geladen werden");
        }
       
       
    }

}
Gui:
[code = Java]
package game;

import javax.swing.*;

public class Gui {

public Gui() {

Var.jf1 = new JFrame();
Var.jf1.setSize(Var.screenwidth, Var.screenheight);
Var.jf1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Var.jf1.setLocation(0, 0);
Var.jf1.setLayout(null);
Var.jf1.setTitle("Die Siedler von Catan");
Var.jf1.setResizable(true);
Var.jf1.requestFocus();
Var.jf1.setVisible(true);
Var.jf1.setLocationRelativeTo(null);

Var.lbl1 = new JLabel();
Var.lbl1.setBounds(0, 0, Var.screenwidth, Var.screenheight);
Var.lbl1.setVisible(true);

Var.jf1.add(Var.lbl1);

}

}

[/code]



Alle anderen Klassen funktionieren aber bei "Label" wird mir sogar nichts ausgegeben.. Danke falls mir jemand helfen kann
 

Harry Kane

Top Contributor
Deine Architektur mit der zentralen Var-Klasse ist echt gruselig.
Wo liegen denn die Bilddateien? Ich weiss nicht, ob IMageIO relative Pfadangaben auswerten kann. Selbst wenn, müsste geklärt werden, wo die Dateien liegen. Der Name "rsc" klingt nämlich sehr nach einem Ressource-Verzeichnis, was im Jar liegt. Falls das der Fall ist, ist IMageIO so wie von dir verwendet, der falsche Weg.
Folgendes funktioniert bei mir:
java.net.URL url = getClass().getResource("/resources/datei.name");
Die URL kannst du dann an eine der IMageIO Methoden übergeben.
 

Vxnc

Mitglied
Okay das hilft schon mal Danke. Aber daran liegt es nicht.. die ganze Label Klasse wird nicht ausgeführt und ich weiß nicht wieso.

Wie sollte ich denn am Besten die Variablen deklarieren?
 

TheWhiteShadow

Bekanntes Mitglied
Die Zeile "Var.lbl1 = new JLabel();" in der GUI-Klasse ist falsch. Hier solltest du deine Label-Klasse erzeugen und keine 0815 JLabel-Klasse.

Wie sollte ich denn am Besten die Variablen deklarieren?
Am Objekt-Orientiertesten wäre, wenn jedes Objekt alle anderen Objekte kennt (referenziert) die es braucht. Soweit möglich im Konstruktor übergeben, bei Zirkel-Referenzen unmittelbar danach.

Am Pragmatischsten ist, der Ansatz von dir (noch Optimaler wäre ein Singleton-Pattern), aber beschränke dich auf das Minimum: Ein GUI-Objekt, eine Spiel-Logik-Klasse und evtl. eine Ressourcen-Klasse. Keine einzelnen Ressourcen und keine Methoden, die mehr tun als auf die oberen Objekte zuzugreifen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
rafi072001 Assoziation zwischen Musiker und Label Java Basics - Anfänger-Themen 1
J Hilfe beim Label animieren Java Basics - Anfänger-Themen 1
J Java FX - Label aktualisieren Java Basics - Anfänger-Themen 1
M Java GUI label ändert sich erst zum Schluss Java Basics - Anfänger-Themen 4
S Counter Label Button Java Basics - Anfänger-Themen 4
J JavaFX Label,Button zur Laufzeit Java Basics - Anfänger-Themen 30
M Mit KeyListener Farbe von Label ändern Java Basics - Anfänger-Themen 13
B Datenbank, aktuelle Ende als Zahl an Label übergeben Java Basics - Anfänger-Themen 7
J Einen Buttonklick in Label anzeigen Java Basics - Anfänger-Themen 6
J Erste Schritte Mit repaint() ist Label nicht sichtbar Java Basics - Anfänger-Themen 15
H Stringanzeige in einem Label Java Basics - Anfänger-Themen 2
J JavaFX -> SocketIO -> Thread -> Update Label Java Basics - Anfänger-Themen 13
KeVoZ_ Label auf JFrame willkürlich Positionieren Java Basics - Anfänger-Themen 2
N Dynamisch erzeugtes Label wird nicht angezeigt, TextField schon Java Basics - Anfänger-Themen 1
M Ausgabe eines Arrays auf Label (Javafx) Java Basics - Anfänger-Themen 4
V Die die aktuelle Größe zusätzlich in einem Label angezeigt wird Java Basics - Anfänger-Themen 11
T Erste Schritte 2 Codes zusammen fügen / Label in JFrame Java Basics - Anfänger-Themen 1
S Java Label hat komischen text Java Basics - Anfänger-Themen 4
S Label Wert zuweisen Java Basics - Anfänger-Themen 8
F Erste Schritte Label Text vor Methodenaufruf setzen Java Basics - Anfänger-Themen 17
W Klassen Fehler bei public void setLabelText(JLabel label, String text) Java Basics - Anfänger-Themen 11
W Erste Schritte Timer soll jede Sekunde Label aktualisieren Java Basics - Anfänger-Themen 5
S Label in Vordergrund Java Basics - Anfänger-Themen 4
G GUI Label Werte ersetzen Java Basics - Anfänger-Themen 25
D String aus txt in label für Tabelle einfügen Java Basics - Anfänger-Themen 8
W GUI Label, ComboBox Java Basics - Anfänger-Themen 4
M BufferedReader => TextField/Label Java Basics - Anfänger-Themen 8
M Ausgabe einer ArrayList auf einem Label Java Basics - Anfänger-Themen 4
W Java label nicht ansprechbar Java Basics - Anfänger-Themen 7
T Icon eines Label speichern Java Basics - Anfänger-Themen 9
J Uhr:Label aktuallisieren Java Basics - Anfänger-Themen 7
J Zeichen für Durchmesser Ø in Label darstellen Java Basics - Anfänger-Themen 15
J Panel + Label anzeigen - Ich kriege es nicht hin Java Basics - Anfänger-Themen 3
C Panel und Label überdecken sich Java Basics - Anfänger-Themen 2
L Label + MouseListener Java Basics - Anfänger-Themen 12
P Label Array in mouseEntered vergleichen Java Basics - Anfänger-Themen 4
J JPG in einem Label einfügen und anzeigen lassen Java Basics - Anfänger-Themen 2
C Aktueller Wert von einem JSlider auf ein Label Java Basics - Anfänger-Themen 2
J "label.setText" funktioniert nicht Java Basics - Anfänger-Themen 9
C JSlider und JRadioButton auf Label anzeigen? Java Basics - Anfänger-Themen 10
K Werte von 2 Klassen austauschen/ Bild im Label ändern Java Basics - Anfänger-Themen 12
R Text vom Label ändern Java Basics - Anfänger-Themen 14
D Vererbung ProcessBar mit einem Label Java Basics - Anfänger-Themen 4
W Anordnung von Label und Button Java Basics - Anfänger-Themen 2
S NullPointerException beim Checkbox-Label-Array mit nextLine() Java Basics - Anfänger-Themen 6
Z Label verschwindet in JScrollPane Java Basics - Anfänger-Themen 7
J Elegante Art mehrere Label mit einem icon zu setzen Java Basics - Anfänger-Themen 13
S Warum zeigt das Label nichts an??? Java Basics - Anfänger-Themen 9
N Text in Label ändern Java Basics - Anfänger-Themen 11
C Label ändert ändert sich nicht Java Basics - Anfänger-Themen 4
S In das Label eines anderen Threads schreiben Java Basics - Anfänger-Themen 2
M Label verschwindet? Java Basics - Anfänger-Themen 3
P Label erstellen und positionieren Java Basics - Anfänger-Themen 5
A TextField + Label = ? Java Basics - Anfänger-Themen 7
Stillmatic1985 Label in einem Frame zentrieren Java Basics - Anfänger-Themen 4
K Button Label lesen Java Basics - Anfänger-Themen 4
Z integer auf Label ausgeben Java Basics - Anfänger-Themen 12
C verschiedene Label auf Knopfdruck abrufen Java Basics - Anfänger-Themen 4
L Label wird nicht richtig dargestellt Java Basics - Anfänger-Themen 2
G Textfeld und Label in einem Tab? Anfänger braucht Hilfe Java Basics - Anfänger-Themen 3
G Hilfe: Label soll ganz nach oben! Java Basics - Anfänger-Themen 6
S Bild im Label ändern Java Basics - Anfänger-Themen 2
T Sonderzeichen in label Java Basics - Anfänger-Themen 4
S break Label als Spungmarken vorher definieren Java Basics - Anfänger-Themen 4
K Wieder Label anzeigen lassen ? Java Basics - Anfänger-Themen 3
K Ergebnisse auf einem Label anzeigen lassen ? Java Basics - Anfänger-Themen 20
P Label nicht bei Progressbar zu sehen Java Basics - Anfänger-Themen 8
K Schrift groesse in einem Label zeigen lassen ! Java Basics - Anfänger-Themen 2
D ImageIcon in Label Java Basics - Anfänger-Themen 7
A label update Java Basics - Anfänger-Themen 10
F Label Schriftfarbe Java Basics - Anfänger-Themen 4
H Text aus Textfeld per Actionlistener in Label ausgeben. Java Basics - Anfänger-Themen 6
M Label in die Mitte eines Swing Fensters Java Basics - Anfänger-Themen 2
N Überprüfen ob ein Label angeklickt wurde Java Basics - Anfänger-Themen 3
K Array im Label ausgeben ? Java Basics - Anfänger-Themen 10
T Label mehrzeilig? Java Basics - Anfänger-Themen 7
S Abfragen ob Label enabled ist . Java Basics - Anfänger-Themen 2
G Array Label Java Basics - Anfänger-Themen 6
S Von anderer Klasse auf Label zugreifen Java Basics - Anfänger-Themen 6
G Hintergrundbild mit Transparentem Label Java Basics - Anfänger-Themen 5
D "Ueber"-Klasse? / Label Array Probleme Java Basics - Anfänger-Themen 2
T per Button soll inhalt aus Tecxfield in Label übertragen wer Java Basics - Anfänger-Themen 5
H Drehen von Label Java Basics - Anfänger-Themen 2
D Automatische Label übertragung Java Basics - Anfänger-Themen 3
B Label wird ungewollt mehrmals erstellt Java Basics - Anfänger-Themen 16
J label.getSize() gibt 0 ? Java Basics - Anfänger-Themen 2
M Berechnung in Label ausgeben? Java Basics - Anfänger-Themen 3
G Zusatzinfos in einem Label ablegen Java Basics - Anfänger-Themen 10
B In einem Label "Zeilenumbruch" Java Basics - Anfänger-Themen 4
G ein Label FETT ung GROSS ausgeben Java Basics - Anfänger-Themen 4
V Auf Label schreiben Java Basics - Anfänger-Themen 3
J Index für ein Label Java Basics - Anfänger-Themen 8
M Text in Label per Button Java Basics - Anfänger-Themen 4
K Verständnis Problem bei Server/Client Java Basics - Anfänger-Themen 2
I WildFily - unterschiedliche Libs im Projekt verursachen Problem Java Basics - Anfänger-Themen 11
imocode Vererbung Problem mit Vererbung Java Basics - Anfänger-Themen 2
L Taschenrechner Problem Java Basics - Anfänger-Themen 4
I Applikationsserver (WildFly) - Zugriff auf Ressourcen.. Problem mit Pfade Java Basics - Anfänger-Themen 10
A ScheduledExecutorService problem Java Basics - Anfänger-Themen 7
marcelnedza Problem mit Weltzuweisung, JavaKarol Java Basics - Anfänger-Themen 13

Ähnliche Java Themen

Neue Themen


Oben