LookAndFeel Nimbus ändert Programmausführung

RoHo

Mitglied
Hallo Leute,

ich wollte mein Programm ein wenig schöner machen und hab erstmal den Systemeigenen LaF eingestellt und hab danach mal Nimbus ausprobiert, aber seltsamerweise gab es dann eine Reihe von Null-pointer-Exceptions in einer Methode, die eigentlich von nirgendwo aufgerufen wurde. Das Problem ließ sich zwar durch eine ==null-Abfrage umgehen, aber die Frage bleibt warum. Wenn ich kein LaF oder ein anderes als Nimbus setzte wird diese Methode gar nicht erst aufgerufen. Das Programm hier zu posten wäre so groß, weil ich auch leider nicht weiß an welcher Stelle das Problem sein könnte, habe nämlich keine Zeile gefunden, die die problematische Methode aufruft.
Hat einer von euch sowas schonmal erlebt oder weiß woran das liegen könnte?

Gruß RoHo
 
Ich hatte schonmal ein ähnlcih beklopptes Problem, wo ich einfach nich wusste, woher es kam... Ich hab dann bei NetBeans einfach mal gesagt "Clean & Build" und danach liefs...

Welche JVM hast du denn ? Nimbus gibts erst seit 1.6_10 glaub ich... Könnte evt auch an sowas liegen..
 
Ich benutze Eclipse und clean hat leider nicht geholfen
java -version spuckt 1.6.0_20 aus, bin mir gerade nicht sicher, ob das die neuste ist(laut wikipedia ist es die _26), musste irgendwann mal ein downgrade machen, weil sonst einige javaskripte im firefox nicht mehr gingen (klingt komisch, war aber so...)
€: update auf 26, hat aber nichts geändert
 
Zuletzt bearbeitet:
Also es gibt eine bug reports wo Nimbus NPEs verursacht. Das kann also schon sein dass es daran liegt. Allerdings wäre es dennoch gut zu wissen wie die genaue Exception lautet
 
naja, ich habe eine JPanel erweiternde Klasse mit einem Namen drin und die getName()-Methode wird aufgerufen, bevor das Objekt initialisiert wurde...
laut java wird die "fehlerhafte" Methode direkt aus dem der Konstuktorzeile aufgerufen, also mein
Java:
public MyClass() -> public String getName()
bzw der Code ist
Java:
	public JobTab(Job j){
		init();
		this.loadJob(j);
	}
die erste Zeile in init() ist ein System.out.println("init started..."); die wird aber gar nicht erst ausgegeben...
 
Ein heißer Kandidat dafür sind auch Änderungen am GUI, die NICHT auf dem EDT gemacht werden. Nimbus ist da AFAIR DEUTLICH empfindlicher als die meisten anderen, üblichen L&Fs...
 
Ah, achtung:
public String getName() {
ist eine Methode, die es schon in Component gibt! Du überschreibst dort eine Swing/AWT-Eigene Methode. Nenn' die Methode lieber "getJobName" oder so!
 
Wenn kein anderes L&F die Methode "getName" benutzt geht da vielleicht einfach nichts schief. Nimbus ist (weil es ja auf diesem "Synth" aufbaut) strukturell schon GANZ anders als alle anderen (hatte mal angesetzt, mich da reinzulesen, is aber ist extrem aufwändig, nicht so viel Zeit für sowas...)
 

Neue Themen


Zurück
Oben