Image kann nicht gefunden werden

Bitte aktiviere JavaScript!
Guten Tag allerseits!
Ich stehe gerade vor einem Problem, das sich mir nicht ganz erschließt.
Ich möchte für einen JButton ein Image als Icon verwenden.
Das funktioniert auch, aber nur solange das Bild in einem Package mit der Klasse ist, in der es verwendet wird.
Sobald ich es für die Übersicht in einem separaten "res"-Ordner ablege, findet er es nicht und es wird der folgende Fehler geworfen:

Code:
Exception in thread "main" java.lang.NullPointerException

    at java.desktop/javax.swing.ImageIcon.<init>(ImageIcon.java:217)

    at Gui.Gui.<init>(Gui.java:52)

    at Funktionen.Main.main(Main.java:9)
Hier meine Klasse, in der der Fehler auftritt:
Java:
package Gui;

import java.awt.Image;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;

import Funktionen.CreationButtonPlacement;
import Funktionen.ImageLoader;
import Funktionen.InfoButtonPlacement;

public class Gui {
    public static JFrame jf;
    DrawToolbar d;
    public static DrawRoom room;
    public static JButton infoButton[] = new JButton[4];
    public static JButton creationButton[] = new JButton[4];
    public static int screenWidth = 1000;
    public static int screenHeight = 800;

    public Gui() {

        JFrame jf = new JFrame();

        jf.setSize(screenWidth, screenHeight);
        jf.setResizable(false);
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jf.setLayout(null);
        jf.setLocationRelativeTo(null);

        d = new DrawToolbar();
        d.setBounds(800, 0, 200, screenHeight);
        d.setVisible(true);
        jf.add(d);

        room = new DrawRoom();
        room.setBounds(0, 0, 800, screenHeight);
        room.setVisible(true);
        jf.add(room);

//        Implementation of Info Buttons
        for (int i = 0; i < infoButton.length; i++) {
            infoButton[i] = new JButton();
            infoButton[i].setBorder(null);
            jf.add(infoButton[i]);
        }
        Icon plus = new ImageIcon(getClass().getResource("/res/Plusbutton.png"));

//        Implementation of Creation Button
        for (int i = 0; i < creationButton.length; i++) {
            creationButton[i] = new JButton(plus);
            creationButton[i].setBorder(null);
            jf.add(creationButton[i]);
        }

//        Defines position and actions of creationButtons
        Funktionen.CreationButtonPlacement.place();

//        Defines position and actions of infoButtons
        Funktionen.InfoButtonPlacement.place();

        jf.setVisible(true);
    }

}
Und hier ein Bild von allen Klassen bzw. Packages:
12312

Die fehlerwerfende Zeile ist:
Code:
Icon plus = new ImageIcon(getClass().getResource("/res/Plusbutton.png"));
Ich hatte auch schon weitere Möglichkeiten wie z.B.
Code:
Icon plus = new ImageIcon(getClass().getResource("/src/res/Plusbutton.png"));
Code:
Icon plus = new ImageIcon(getClass().getResource("/Plusbutton.png"));
oder
Code:
Icon plus = new ImageIcon(getClass().getResource("Plusbutton.png"));
getestet, aber nichts findet das betroffene Bild und es wird immer die gleiche Exception ausgeworfen.
Vielen Dank für eure Hilfe!
 
Wie baust Du Dein Projekt? Wo landen die Dateien aus dem res Ordner?

getRessource will Dateien aus dem Classpath lesen, daher muss die Datei irgendwo innerhalb des Classpaths zu finden sein.
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben