Class loader und setIcon

Status
Nicht offen für weitere Antworten.
G

Gast2

Gast
Hallo zussamen,
ich habe ein problem mit dem classloader

Code:
postfach	=new ImageIcon(ClassLoader.getSystemResource("studio/lib/post.jpg"));
JLabel image= new JLabel(postfach)

das funktioniert noch doch sobald ich
Code:
image.setIcon(postfach)

gibt es einen fehler in meinem jar file


das gleiche bei itext
Code:
Image kopf=Image.getInstance(ClassLoader.getSystemResource("studio/lib/briefkopf.gif"));

was ist daran falsch?
 
G

Gast2

Gast
also unter eclispe funktionierts nur sobald ich die jar-datei ausführe kommt der fehler

C:\Projekte\Studio>java -jar bodystyle.jar
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(Unknown Source)
at studio.main.MEDButtonPanel.<init>(MEDButtonPanel.java:72)
at studio.base.MEDJFrame.<init>(MEDJFrame.java:148)
at studio.base.MEDLogin.pr³fen(MEDLogin.java:146)
at studio.base.MEDLogin.actionPerformed(MEDLogin.java:180)
at javax.swing.JTextField.fireActionPerformed(Unknown Source)
at javax.swing.JTextField.postActionEvent(Unknown Source)
at javax.swing.JTextField$NotifyAction.actionPerformed(Unknown Source)
at javax.swing.SwingUtilities.notifyAction(Unknown Source)
at javax.swing.JComponent.processKeyBinding(Unknown Source)
at javax.swing.JComponent.processKeyBindings(Unknown Source)
at javax.swing.JComponent.processKeyEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.KeyboardFocusManager.redispatchEvent(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(Unknown Source)

at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(Unknown Sour
ce)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Sour
ce)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

C:\Projekte\Studio>
 
G

Gast2

Gast
klar die anderen bilder funktionieren ja auch...
also wenn ich die setIcon() auskommentiere funktioniert es ,aber da ich einen thread habe wo immer 2 bilder abwechselnd aufblinken lässt bräuchte ich die funktion
 

The_S

Top Contributor
Hm, dann wird dein ico wohl null sein ..., gilt nur noch zu ermitteln warum. Überprüf mal, ob es gleich nach dem laden null ist. Ich kann dein Problem bei mir nämlich nicht rekonstruieren.
 
G

Gast2

Gast
nee ist nicht weil null sonst wäre es in eclipse doch auch null oder???
ich mach des gleich alls aller 1. im konstruktor!!!!!mhm ....
 
G

Gast2

Gast
kann des sein dass das setIcon problem mit einer url hat weil wenn ich classloader.....
mache dann steht da file:pfad
wenn ich das ganze ohne classloader mache steht da was anderes drin
 

The_S

Top Contributor
überprüf ob es null ist. Entweder das Label oder das Icon MUSS null sein, ansonsten wird keine NullPointerException geworfen!
 
G

Gast2

Gast
ja des ist mir schon bewusst ich hab durch gedebugt ....da ist nichts null...
 

The_S

Top Contributor
Wenn weder das Icon, noch das Label null ist, aber bei der Zeile

Code:
label.setIcon(icon);

eine NullPointerException geworfen wird, dann gibts nur zwei Möglichkeiten

a) ich bin bescheuert und es gibt noch weitere Gründe warume eine NullPointerException geworfen wird.
b) du sagst mir nicht alles/nicht die wahrheit/nimmst einfach was an, ohne es zu testen ;) .
 

The_S

Top Contributor
Hab mir dann doch mal die Mühe gemacht und stellvertretend für dich ein KSKB angefertigt

Code:
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;


public class PictureTest {

	public static void main(String[] args) {
		
		JFrame frame = new JFrame();
		ImageIcon ico = new ImageIcon(ClassLoader.getSystemResource("Kreuz.png"));
		JLabel label = new JLabel();
		frame.add(label);
		label.setIcon(ico);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.pack();
		frame.setVisible(true);
	}
}

Kreuz.png liegt direkt im default-package (war jetzt zufaul packages zu erstellen). Dieser Code funktioniert bei mir sowohl in Eclipse, als auch exportiert in ein Jar!
 
G

Gast2

Gast
damit du mir glaubst meine debug ergebnisse
icon=new MEDJLabel(postfach);
ICONMAGE postfach
-file:/C:/Projekte/Studio/studio/lib/post.jpg
-file:/C:/Projekte/Studio/studio/lib/post.jpg
file=/C:/Projekte/Studio/studio/lib/post.jpg
path=/C:/Projekte/Studio/studio/lib/post.jpg
accesibleContext=null----------------------------das einzigste was null ist was auch immer das sein soll ;)

LABELICON

studio.base.MEDJLabel[,974,5,18x20,alignmentX=0.0,alignmentY=0.0,border=,flags=8388608,maximumSize=,minimumSize=,preferredSize=,defaultIcon=file:/C:/Projekte/Studio/studio/lib/post.jpg,disabledIcon=,horizontalAlignment=CENTER,horizontalTextPosition=TRAILING,iconTextGap=4,labelFor=,text=,verticalAlignment=CENTER,verticalTextPosition=CENTER]
 

The_S

Top Contributor
Ich kenn mich in der Klasse ImageIcon zwar nicht so aus, aber ich kann mir nicht vorstellen, dass es so sonderlich gut ist, wenn der accesibleContext gleich null ist ... Mal ganz davon abgesehen, dass mir ein

Code:
System.out.println(postfach);

bzw.

Code:
System.out.prinln(postfach == null);

vollkommen genügt hätte.

Hattest du nicht erwähnt, dass es geht, wenn du postfach deinem Label gleich im Konstruktor zuweist? Das machst du ja hier ...
 
G

Gast2

Gast
wart ich lass es kurz ausgegeben!!!!!
nee hat auch nicht geklappt bei meinen veruschen danach mach ich genau das gleiche mit einem gif damit er keine probleme???könnte es eventuell auch daran liegen??
 
G

Gast2

Gast
in eclipse folgende ausgabe

false
postfach file:/C:/Projekte/Studio/studio/lib/post.jpg
 

The_S

Top Contributor
und mit den selben daten klappts in eclipse? Ist evtl. das Image beschädigt? Hatte ich auch schon. War recht ärgerlich, da keine bzw. unerklärliche Fehlermeldungen auftraten und ich ca. den halben Tag nach dem Fehler gesucht hab, bis ich mal n anderes Image genommen hab ;) .
 
G

Gast2

Gast
das komische ist aus eclipse raus bekomm ich die bilder angezeigt!!!!
oder wenn ich die bilder ausserhalb des jar-files lege und den pfad anpasse funktioniert es auch mit der jar-datei nur meine bilder sind halt nicht drin ist unschön!!!!und die anderen 15 bilder funktionieren sind nur diese beiden ;)!!!!!
also kann ich datei ja nicht beschädigt sein oder????sonst würde ich das bild ja nie angezeigt bekommen oder?
 

The_S

Top Contributor
Hm, das ist irgendwie sehr merkwürdig. Speicher die Bilder doch mal in einem anderen Format ab, png z. B. (finde ich sowieso viel besser als jpg ;) ). Evtl wird beim Packen da irgendwo ein byte oder sonstwas verloren. Könnte mir zwar nicht erklären wie, aber ein Versuch ist es wert!
 
G

Gast2

Gast
ok des versuch ich mal!!!!
also wenn ich 2 andere bilder zu mindet nehme funktioniert es megaaaaaaaaaaa dreck ;)
ok irgendwie sind alle bilder die ich mit paint bearbeitet hab am arsch oder sagen wir so mit denen klappt es nicht!!!
egal welches format
 

The_S

Top Contributor
Warte, du sagtest MS-Paint? Hehe, mir kommt da ein verdacht. Paint speichert die Bilder Standardmäßig mit groß-geschriebener Extension ab. Also statt .jpg, .gif oder .png steht da dann halt .JPG, .GIF oder .PNG. Da das Dateisystem unter Windows nicht Case-Sensetive ist, ist es Windows egal, ob deine Datei groß oder klein geschrieben ist, sie wird so und so gefunden. Aber in einem JAR ist das nicht so. Wenn du deine Bilder also so Bild.PNG abspeicherst, musst du sie im JAR auch unter Bild.PNG ansprechen und nicht unter Bild.png. Ansonsten wird das Bild schlichtweg nicht gefunden!
 
G

Gast2

Gast
alles ist besser wie ms-paint ;) ok versuchs mal mit dem vielleicht zerstört der nicht gleich meine ganzen bilder ;)
 
G

Gast2

Gast
Oh man ey jetzt funktionierts!!!!!danke für die geduld!!!!!
ich werde es mir merken ;)
 

The_S

Top Contributor
Ohne jetzt lästern zu wollen, aber wenn du einfach mal das kontrolliert hättest, was ich dir vorgeschlagen habe (mein 1. produktiver und 2. post in diesem Thread insgesamt),

Hobbit_Im_Blutrausch hat gesagt.:
Das Bild ist unter angegeben Pfad mit ins Jar gepackt worden?

und nicht nach dem Motto "Eh, ich bin mir 100pro sicher, dass das alles stimmt, da muss ich gar net nachgucken. Es kann gar net sein, dass es daran liegt, läuft in Eclipse ja auch" gehandelt hättest, hättest du uns beiden einiges an Zeit und Nerven gespart!

Jetzt kann man zwar nix mehr ändern, aber merks dir für die Zukunft. Auch wenn der Tipp noch so lächerlich und unwirklich erscheinen mag, überprüf es, bevor du einfach mal sagst "Kann net sein, alles korrekt"! Würde ich in letzter Zeit selbst nicht so viel mit paint machen (ist einfach schnell mal da) und wäre ich net so hartnäckig, würdest du vermutlich noch nächstes Jahr mit deinem Problem dastehen, da die eigentliche Lösung ja schon genannt, von dir aber als "mumpitz" abgestempelt wurde.

:roll:
 
G

Gast2

Gast
he ich hab nachgeschaut hab sogar mein ganzen jar extra entpackt!!!!aber wenn ich ehrlich bin jab ich auf das gar nicht geachtet!!!!!weil ich mal den ganzen mit copy paste reinkopiert hab und es auch nicht getan hat leider hab ich das nur für eine datei gemacht ;) ;) hätte ich es für beide gemacht hätte es geklappt wüsste zwar nicht warum ;) ;)....
jetzt weiß ich warum es dann einmal getan hat wo ich ein bild auskommentiert hab na ja...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Class.forName("com.mysql.jdbc.Driver"); ClassNotFoundException: com.mysql.jdbc.Driver Allgemeine Java-Themen 24
D NoClassDefFoundError: Could not initialize class Allgemeine Java-Themen 0
J Class to link Java Allgemeine Java-Themen 4
C Was passt hier nicht bei der Calendar-Class Allgemeine Java-Themen 2
E Class.getResourceAsStream() gibt null zurück Allgemeine Java-Themen 2
Erwin82a Object cannot be converted to Custom Class in Lampda Expression Allgemeine Java-Themen 2
T Java Robot Class - Bot Allgemeine Java-Themen 3
S Class File Editor -> Source not found Allgemeine Java-Themen 4
G javafx "class path" exception Allgemeine Java-Themen 5
S Java class direved from inner class Allgemeine Java-Themen 6
S Inner Class Allgemeine Java-Themen 11
K Wildcard und class type Allgemeine Java-Themen 9
M Java model class ? Allgemeine Java-Themen 9
Thallius Ist meine static Helper Class Thread save? Allgemeine Java-Themen 9
S class path resource [config.properties}] cannot be opened because it does not exist Allgemeine Java-Themen 4
J Reflection Aufruf: .class durch .dll ersetzen Allgemeine Java-Themen 4
T Compiler-Fehler NoClassDefFoundError beim Laden einer Class Allgemeine Java-Themen 11
J Class Decompile als String (Procyon) Allgemeine Java-Themen 2
H Class 'java.io.BuferedReader' is not present in JRE Emulation Libary | GWT Fehler?! Allgemeine Java-Themen 0
I Datentypen String in class sicher verwahren Allgemeine Java-Themen 17
R Dynimc Class Loading Allgemeine Java-Themen 5
J Inner class + Leer-Konstruktor Allgemeine Java-Themen 1
Neumi5694 Methoden Generic: Rückgabetyp als Class-Parameter übergeben Allgemeine Java-Themen 3
D Collections.sort funktioniert nicht in exportierten .class Dateien Allgemeine Java-Themen 10
V Eclipse .class Dateien Allgemeine Java-Themen 9
KeexZDeveoper Von .class zu .java Allgemeine Java-Themen 7
N Wo ist Object.class ? Allgemeine Java-Themen 0
K Nicht alle class-Dateien im JRE? Allgemeine Java-Themen 2
M *.class Files ausführen Allgemeine Java-Themen 2
L Klassen Nested Class In Nested Class Allgemeine Java-Themen 3
perlenfischer1984 Dialect class not found exception Allgemeine Java-Themen 15
Tort-E Manifest Main-Class Allgemeine Java-Themen 8
I JSoup Class auslesen Allgemeine Java-Themen 1
K Generic class und Reflection Allgemeine Java-Themen 2
R .class Datei in .jar austauschen Allgemeine Java-Themen 2
R Java .class-File-Konstrunkt mit Programm visualisieren Allgemeine Java-Themen 18
A main-class Not found Allgemeine Java-Themen 3
G Java Class Intrumentation mit Annotations in Laufzeit Allgemeine Java-Themen 1
N Per Reflection auf (method) local inner class zugreifen? Allgemeine Java-Themen 3
P JDK installieren Error: Could not find or load main class HelloWorld.java Allgemeine Java-Themen 3
B public class JarFilter extends FileFilter « Falsch? Allgemeine Java-Themen 4
D Object nach Vererbung mit Class Object überprüfen Allgemeine Java-Themen 4
T Hash von *.class-Datein überprüfen Allgemeine Java-Themen 1
F java.lang.ClassNotFoundException: .class Allgemeine Java-Themen 5
T InvalidClassException - Read null attempting to read class descriptor for object Allgemeine Java-Themen 8
Phash Can't find Main Class Allgemeine Java-Themen 4
B Erste Schritte Plugin erkennen und Class Dateien anzeigen lassen Allgemeine Java-Themen 3
B json zu java class Allgemeine Java-Themen 2
antonbracke Aus Jar eine Class laden und damit arbeiten! Allgemeine Java-Themen 5
D Class<CAP#1> statt Class<...> Allgemeine Java-Themen 5
T Class-Objekt mit URLClassloader Allgemeine Java-Themen 7
A Class Datei aus Verzeichnis über URLClassLoader laden Allgemeine Java-Themen 2
L Class Files , Methode .delete() Allgemeine Java-Themen 13
E NetBeans warning: [options] bootstrap class path not set in conjunction with -source 1.6 Allgemeine Java-Themen 4
X Could not find the main class programm will exit (textdokument) Allgemeine Java-Themen 3
S Could not find the main class Allgemeine Java-Themen 7
B Mal wieder "Could not find the main class" Allgemeine Java-Themen 3
B Variable class in java.lang.Object Allgemeine Java-Themen 11
C Could not find the main class. Allgemeine Java-Themen 15
S Klassen .jar - eine .class datei ändern? Allgemeine Java-Themen 23
A Could not find main class: start Allgemeine Java-Themen 5
S main() class finden Allgemeine Java-Themen 7
hdi Could not find main class? Allgemeine Java-Themen 8
R Warum Class.forName(); Allgemeine Java-Themen 7
C class.class angefordert ? Allgemeine Java-Themen 2
S Methoden Class.forName() >> Methoden - Reihenfolge Allgemeine Java-Themen 5
B Test$1.class mit dem javac compiler Allgemeine Java-Themen 7
G jar Datei findet Main Class nicht... Allgemeine Java-Themen 2
P Java Editor Could not find the main class GUI. Programm will exit. Allgemeine Java-Themen 3
D class Datei einlesen Allgemeine Java-Themen 4
T Interface > Abstract > Class Allgemeine Java-Themen 11
TheDarkRose Subversion .class Dateien auch commiten? Allgemeine Java-Themen 3
D API - Beispiel + static member in inner (non static) class Allgemeine Java-Themen 2
E String name in class convertieren Allgemeine Java-Themen 4
F Änderung in .jar bzw. .class vornehmen ? Allgemeine Java-Themen 18
H2SO3- bestimmte class immer mit 1.4 compilieren Allgemeine Java-Themen 5
B class dateien "einlesen" und objekte erzeugen Allgemeine Java-Themen 6
G Unterschied MyClass.class vs this Allgemeine Java-Themen 2
S mit Class eine Klasse nur einmal instantiieren Allgemeine Java-Themen 4
Sonecc Zugriff auf Class File einer anderen Jar während der Laufzeit Allgemeine Java-Themen 2
M Klasse aus xyz.class Datei laden / package entfernen? Allgemeine Java-Themen 4
BattleMaster246 Could not find the Main class Allgemeine Java-Themen 30
N class Task extends TimerTask ohne Blockieren Allgemeine Java-Themen 15
H .class in .java umwandeln Allgemeine Java-Themen 3
T class.newinstance + try/catch-konstruktor Allgemeine Java-Themen 6
X Cannot refer to a non-final variable settings inside an inner class defined in a different method Allgemeine Java-Themen 4
J Class.forName und CLASSPATH -Problem Allgemeine Java-Themen 5
T Class-files zur Laufzeit zu Reflection-Zwecken laden Allgemeine Java-Themen 18
G Thread in Methode oder in inner class Allgemeine Java-Themen 3
woezelmann referenz der outer class aus static nested class heraus Allgemeine Java-Themen 7
reibi Main-Class in Jarfile Allgemeine Java-Themen 3
E Timer class macht einfach garnichts :/ Allgemeine Java-Themen 6
D Class.forName Allgemeine Java-Themen 2
S Class RGB Farbe Allgemeine Java-Themen 2
S JavaDoc aus .class Datei extrahieren Allgemeine Java-Themen 5
mongole Class.class.getResource(...) Allgemeine Java-Themen 10
N Probleme mit .jar 'Could not find main class' Allgemeine Java-Themen 3
T Class Not Found Exception beim import von Paket Allgemeine Java-Themen 2
G Abstract class Stillfrage Allgemeine Java-Themen 4
P Class Casting: Graphics/Graphics2D Allgemeine Java-Themen 7

Ähnliche Java Themen

Neue Themen


Oben