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:
Hier meine Klasse, in der der Fehler auftritt:
Und hier ein Bild von allen Klassen bzw. Packages:
Die fehlerwerfende Zeile ist:
Ich hatte auch schon weitere Möglichkeiten wie z.B.
oder
getestet, aber nichts findet das betroffene Bild und es wird immer die gleiche Exception ausgeworfen.
Vielen Dank für eure Hilfe!
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:
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"));
Code:
Icon plus = new ImageIcon(getClass().getResource("Plusbutton.png"));
Vielen Dank für eure Hilfe!