Swing ImageIcon lädt kein Bild

cool_brivk24

Mitglied
Hallo liebe programmierer:


Ich Poste erst den Fehlercode, dann den code.

Ich habe mich für die JLabel Methode entschieden:

Wenn ich versuche ein JLabel mit einem ImageIcon zu laden, bekomme ich diesen Fehler:

Code:
Exception in thread "main" java.lang.NullPointerException
    at java.awt.Container.addImpl(Unknown Source)
    at java.awt.Container.add(Unknown Source)
    at de.coolbrick.catan.gui.Window.<init>(Window.java:33)
    at Main.<init>(Main.java:23)
    at Main.main(Main.java:33)

In meiner Window Zeile 33 steht:
Java:
public Window() {
       JPanel p = new JPanel();
       
       p.add(l1);
       p.setBackground(new Color(0, 162, 232));//Zeile 32
//Zeile 33, die ist leer

In meiner Main auf Zeile 23 und 33 steht:
Java:
//Zeile 23        jf.add(new Window());

public static void main(String[] args) {
       new Main();    //Zeile 33
       Window w = new Window();
       new SelectedMapTile();
   }

Nun, hier ist mein code der Window Klasse:
Java:
public JLabel l1;
   
   
   public Window() {
       JPanel p = new JPanel();
       
       p.add(l1);
       p.setBackground(new Color(0, 162, 232));
       
   
       }
   public void paintComponent(Graphics g) {
       BufferedImage map = LoadImage("img/Map/FirstTestMap.png");       
       BufferedImage area = LoadImage("img/Map/Area.png");
       
       BufferedImage forest = LoadImage("img/Map/MapTiles/Wald.png");
       BufferedImage water = LoadImage("img/Map/MapTiles/Wasser.png");
       BufferedImage grass = LoadImage("img/Map/MapTiles/Rasen.png");
       BufferedImage mountain = LoadImage("img/Map/MapTiles/Berg.png");
       
        ImageIcon icon = new ImageIcon (map);
         l1 = new JLabel (icon);
         
       
       
       Graphics2D g2d = (Graphics2D) g;
(Dies ist nur ein Teil der Window Klasse)

Was ich machen wollte, ist ein JLabel zu erzeugen was ein Bild hat. Dieses JLabel wird dann richtig positioniert.

Also
Java:
public JLabel lb1;
public ImageIcon bild;

bild = new ImageIcon("img/Map/Area.png")
lb1 = new JLabel(bild);

jpanel.add(lb1);

Leider weiß ich nicht weiter.

Ich hoffe auf eure Antworten

mfusdg (Mit Freundlichen und sehr dankbaren grüßen)

-cool_brick24
 

Robat

Top Contributor
Schau doch mal ob LoadImage(..) nicht doch NULL zurück gibt, weil das Bild nicht geladen werden kann. Stimmt der Pfad denn? Was macht die LoadImage Methode?

OT: Du solltest in paintComponent() keine Variablen anlegen / initialisieren. Bilder, Komponenten, .. müssen nur einmal erstellt werden
 

mrBrown

Super-Moderator
Mitarbeiter
Der Fehler ist, dass du im Konstruktor l1 dem Panel hinzufügst, l1 an der Stelle aber noch null ist.

Abgesehen davon ist der Code aber noch ... sehr verbesserungswürdig.
- du erstellst mindestens 2 Window-Objekte (in main(...) und in Main())
- Window sollte weiterhin *keine* Component sein, oder zumindest anders heißen
- Window#paintComponent ist vermutlich immer noch völlig überflüssig. das was drin ist, gehört in jedem Fall nicht rein


Ganz allgemeiner Rat: Erst die Grundlagen drauf haben, dann erst GUI-Programmierung.
 

cool_brivk24

Mitglied
Ich habe jetzt mal meine Klassen gelöscht und will es auf einen besseren, übersichtlicheren Weg machen.
Also habe ich jetzt 2 Klassen.
Klasse 1: Main
Klasse 2: Draw

Main:
Java:
import java.awt.Color;

import javax.swing.JFrame;
import javax.swing.JPanel;



public class Main extends JFrame{
   

    private static final long serialVersionUID = 1L;

    public Main(){
        JFrame jf = new JFrame();
        Draw d = new Draw();
        JPanel p = new JPanel();
       
       
        jf.setSize(900, 700);
        jf.setTitle("MineCatan");
        jf.setResizable(false);
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jf.setLocationRelativeTo(null);
        jf.setBackground(new Color(0, 162, 232));
        jf.requestFocus();
       
        p.add(d.Map);
        p.add(d.Area);
        //p.setBackground(new Color(0, 162, 232));
       
       
        jf.add(p);
        jf.setVisible(true);
    }

   
   
   
   
    public static void main(String[] args) {
        new Main();
       
       
       
       
       
       
           
    }

}

Draw:
Java:
import javax.swing.ImageIcon;
import javax.swing.JLabel;

public class Draw{
    public JLabel Map;
    public ImageIcon forMap;
    public JLabel Area;
    public ImageIcon forArea;
   
    public Draw(){
        forMap = new ImageIcon("img/Map/Map.png");
        Map = new JLabel(forMap);
        forArea = new ImageIcon("img/Map/Area.png");
        Area = new JLabel(forArea);
    }
}

Nur wenn ich die Map in meiner Main hinzufüge, sehe ich mein Bild. Danach füge ich meine Area hinzu. Jetzt sehe ich nur die Map. Also ist warscheinlich die Area im Hintergrund gezeichnet. Kann mir da jemand zufällig helfen?

mfusdg

-cool_brick24
 

mihe7

Top Contributor
Das ist ja mal ein Anfang :) Mal weiter gefragt: wofür brauchst Du die verschiedenen Bilder bzw. kannst Du diese nicht vorher zu einem Bild zusammensetzen?
 

cool_brivk24

Mitglied
Du meinst ein Spritesheet? Ein SpriteSheet hatte ich zwar erstellt, fande es aber besser mehrere Blöcke(Felder) zu haben. Also: Forest; Mountain; Grass; Sea. Ich möchte diese ja auch unterschiedlich platzieren, also man kann eine TXT Datei erstellen, in der man Zahlen angibt, wie das Feld aufgebaut ist.

mfg

-cool_brick24
 

mihe7

Top Contributor
Du meinst ein Spritesheet?
Nein. Wenn ich von Bergen, Wald, Wiesen und Seen lese, dann assoziiere ich damit erst einmal ein statisches Bild, das z. B. im Hintergrund angezeigt werden soll. Insofern frage ich mich, warum man dieses Bild nicht vorab erzeugt.

Machen wir das mal konkret: wenn wir ein klassisches Brettspiel nehmen, dann ist dieses statisch. Dann kann ich dieses vorab als Bild ablegen (spielbrett.jpg) und muss in der Anwendung überhaupt nix mehr machen.

Wenn ich mir das Spielbrett hier (https://www.spiele-offensive.de/index.php?cmd=artikel_anzeigen&aid=1004651&curpic=1) ansehe, dann kann ich es mir zwar zusammenstellen, aber es dürfte sich trotzdem noch um eine relativ statische Angelegenheit handeln.

In paintComponent käme dann einfach ein Zeichnen des Spielbretts (Laden der Bilder gehört da sowieso nicht rein) sowie der Figuren an der jeweils aktuellen Position.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
O ImageIcon lädt nicht AWT, Swing, JavaFX & SWT 2
B ImageIcon auf JPanel austauschen AWT, Swing, JavaFX & SWT 3
C Swing ImageIcon erstellen, skalieren und verwenden AWT, Swing, JavaFX & SWT 3
N imageIcon zeigt kein Bild an AWT, Swing, JavaFX & SWT 5
P Swing Mehrere JLabels mit ImageIcon in JPanel lesen AWT, Swing, JavaFX & SWT 1
F JLabel mit ImageIcon per Button bewegen AWT, Swing, JavaFX & SWT 4
CptK Swing Button: ImageIcon unter den Text AWT, Swing, JavaFX & SWT 4
P Kein Bild wird angezeigt bei ImageIcon AWT, Swing, JavaFX & SWT 16
S Bild mit ImageIcon auf GUI verkleinern AWT, Swing, JavaFX & SWT 3
K Swing JTable mit ImageIcon und Text in einer Zelle AWT, Swing, JavaFX & SWT 1
L ImageIcon auf JPanel wird nicht angezeigt(keiner Fehlermeldung) AWT, Swing, JavaFX & SWT 11
stylegangsta JButton Fehelr javax.swing.ImageIcon.<init>(Unknown Source) AWT, Swing, JavaFX & SWT 24
L JButton mit ImageIcon/Fehlermeldung AWT, Swing, JavaFX & SWT 1
Tausendsassa ImageIcon?! Hilfe! AWT, Swing, JavaFX & SWT 10
S JLabel mit ImageIcon, komischer Rahmen? AWT, Swing, JavaFX & SWT 2
kaoZ Swing JToolBar, ImageIcon werden teilweise verdeckt AWT, Swing, JavaFX & SWT 0
R ImageIcon - Über Socket AWT, Swing, JavaFX & SWT 1
P ImageIcon lade schlägt fehl AWT, Swing, JavaFX & SWT 5
B Repaint auf JFrame, JLabel und ImageIcon AWT, Swing, JavaFX & SWT 4
S JLabel zeigt ImageIcon nicht AWT, Swing, JavaFX & SWT 13
B ImageIcon - Probleme mit dem Dateipfad AWT, Swing, JavaFX & SWT 5
C Swing ImageIcon mit Bild aus Temp-Verzeichniss füllen AWT, Swing, JavaFX & SWT 15
P ImageIcon auf Rectangle AWT, Swing, JavaFX & SWT 3
C ImageIcon eines Labels auf einem Panel in neuem Fenster anzeigen AWT, Swing, JavaFX & SWT 2
A Swing ImageIcon hover AWT, Swing, JavaFX & SWT 9
M ImageIcon Bild wird beim verkleinern des Fensters nicht verkleinert AWT, Swing, JavaFX & SWT 3
B Swing ImageIcon Resizing AWT, Swing, JavaFX & SWT 15
S ImageIcon von Label entfernen AWT, Swing, JavaFX & SWT 9
B Warten bis neues ImageIcon zugewiesen ist AWT, Swing, JavaFX & SWT 3
Zettelkasten imageIcon-Rand wegmachen AWT, Swing, JavaFX & SWT 5
S Abspeichern aus einem ImageIcon ins korrekte Format AWT, Swing, JavaFX & SWT 2
J ImageIcon: ZipException bei ungültiger PNG-Datei AWT, Swing, JavaFX & SWT 2
S ImageIcon Grösse anpassen AWT, Swing, JavaFX & SWT 2
J Geladene Grafik in ImageIcon auf Panel fest positionern. AWT, Swing, JavaFX & SWT 8
badfish Swing ImageIcon auf JLabel, Fenster Maximieren verbieten und Icon oben links austauschen? AWT, Swing, JavaFX & SWT 5
B Problem mit imageIO und ImageIcon AWT, Swing, JavaFX & SWT 5
M Swing ImageIcon über JFileChooser einbinden AWT, Swing, JavaFX & SWT 4
C Swing JComboBox - Problem bei Darstellen von ImageIcon AWT, Swing, JavaFX & SWT 4
G ImageIcon viel zu groß AWT, Swing, JavaFX & SWT 2
G IMageIcon Bildgröße ändern AWT, Swing, JavaFX & SWT 7
isowiz Leeres ImageIcon einer bes timmten Größe erzeugen AWT, Swing, JavaFX & SWT 2
W ImageIcon im JLabel mit autosize? AWT, Swing, JavaFX & SWT 3
B ImageIcon JFrame AWT, Swing, JavaFX & SWT 3
M ImageIcon auf AbstractButton links-/rechtbündig AWT, Swing, JavaFX & SWT 2
D jButton mit ImageIcon & MouseListener AWT, Swing, JavaFX & SWT 5
M ImageIcon in JLabel verkleinern AWT, Swing, JavaFX & SWT 8
S n-e-w JLabel(n-e-w ImageIcon(i)) funkt. nicht im JScrollPane AWT, Swing, JavaFX & SWT 2
M Problem, an ImageIcon in JPanels zu kommen. AWT, Swing, JavaFX & SWT 2
J Bildfilterung und Ausgabe in ein ImageIcon AWT, Swing, JavaFX & SWT 2
X ImageIcon für JButton AWT, Swing, JavaFX & SWT 4
X JButton "effect" für ImageIcon AWT, Swing, JavaFX & SWT 6
F ImageIcon -> BufferedImage AWT, Swing, JavaFX & SWT 2
T ImageIcon als Seperator im Jmenu AWT, Swing, JavaFX & SWT 8
G JLabel und ImageIcon AWT, Swing, JavaFX & SWT 16
padde479 ImageIcon laden AWT, Swing, JavaFX & SWT 6
L Anzeigen von fotos: ImageIcon oder BufferedImage + paint() ? AWT, Swing, JavaFX & SWT 5
J ImageIcon, Image - 100% CPU Auslastung . AWT, Swing, JavaFX & SWT 3
B imageicon relativer Pfad AWT, Swing, JavaFX & SWT 5
F ImageIcon Größe ändern AWT, Swing, JavaFX & SWT 29
M ImageIcon / .paintIcon() AWT, Swing, JavaFX & SWT 2
M Problem mit ImageIcon in einer JTable AWT, Swing, JavaFX & SWT 2
D JButton einen neuen ImageIcon setzen? AWT, Swing, JavaFX & SWT 2
R resize ImageIcon AWT, Swing, JavaFX & SWT 7
B Problem mit ImageIcon/Swing in Linux AWT, Swing, JavaFX & SWT 6
K ImageIcon fehler ? AWT, Swing, JavaFX & SWT 4
M ImageIcon laden? AWT, Swing, JavaFX & SWT 2
B Bild lädt nicht AWT, Swing, JavaFX & SWT 2
MadMax2506 Swing JTable lädt sehr lange AWT, Swing, JavaFX & SWT 1
P JavaFX Fenster lädt nicht mehr AWT, Swing, JavaFX & SWT 4
M JavaFX Applikation lädt Scrollpanes nicht AWT, Swing, JavaFX & SWT 19
T Image Loader lädt Bild nicht AWT, Swing, JavaFX & SWT 10
B JEditorPane lädt keine Schriftfarbe in HTML AWT, Swing, JavaFX & SWT 2
E 3D-Grafik JOGL (lädt sehr lange) AWT, Swing, JavaFX & SWT 20
J AWT JApplet lädt Bild nicht hoch AWT, Swing, JavaFX & SWT 7
M JEditorPane lädt HTML ohne Bilder AWT, Swing, JavaFX & SWT 2
M JEditorPane lädt HTML ohne Bilder AWT, Swing, JavaFX & SWT 2
P kein Scrollen nach affinertransformation bei mouse dragged AWT, Swing, JavaFX & SWT 2
Fridolin111 Der KeyListener Löst kein event aus AWT, Swing, JavaFX & SWT 6
F Kein JavaFX mehr im Eclipse Wizard AWT, Swing, JavaFX & SWT 1
S Swing Bei start des Programmes kein Fenster zu sehen AWT, Swing, JavaFX & SWT 1
L JavaFX TableView kein content text ändern AWT, Swing, JavaFX & SWT 2
L JavaFX Anderer Text, wenn kein Platz ist. AWT, Swing, JavaFX & SWT 1
C JavaFX ProGuard -> TableView kein Inhalt AWT, Swing, JavaFX & SWT 7
B JavaFX Text wird nicht angezeigt, kein Fehler AWT, Swing, JavaFX & SWT 2
D Kein Icon beim JTabbedPane AWT, Swing, JavaFX & SWT 1
krgewb Kein src-Verzeichnis AWT, Swing, JavaFX & SWT 1
A Swing CardLayout - kein Wechsel möglich AWT, Swing, JavaFX & SWT 5
Wurstkopp JavaFX JavaFX KeyEvent kein Zahlencode um unbekannte Mediatasten auszuwerten? AWT, Swing, JavaFX & SWT 0
Nabbit Über JList kein JPopupMenu AWT, Swing, JavaFX & SWT 2
S Kein JFrame unter Mac? AWT, Swing, JavaFX & SWT 8
F Gui weicht von Designpreview ab (kein fensterrahmen, andere größe) AWT, Swing, JavaFX & SWT 13
Z AWT JLabel setzt kein neuen Text AWT, Swing, JavaFX & SWT 6
Seikuassi Swing JTextField nimmt kein Einfügen (Strg+V) an AWT, Swing, JavaFX & SWT 4
T JavaFX ControlsFX-Notification öffnet nicht wenn kein JavaFX-Fenster offen. AWT, Swing, JavaFX & SWT 1
M Kein Zeichnen der Figuren auf JPanel AWT, Swing, JavaFX & SWT 4
P Event Handling Anfängerfrage: ActionEvent bekommt kein Zugriff auf Objekt AWT, Swing, JavaFX & SWT 3
S Kein DnD in allen Java Applikationen AWT, Swing, JavaFX & SWT 5
D Event Handling "Plötzlich" kein mouseMoved-Event AWT, Swing, JavaFX & SWT 2
R Bitte kein Menü bei F10 AWT, Swing, JavaFX & SWT 9
M Kein resize nach Component.setVisible() AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben