Setzen des LookAndFeel

frank1960

Neues Mitglied
Hallo,

Wo in der Struktur meines Programms (oder evtl. gar in den Standardeinstellungen von Java oder Eclipse) kann ich

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

als Standard eintragen?

Vor der ersten main()? In der main() gleich zu Beginn?

Wenn ich das als erste Zeile in meine main() schreibe, gibt es durch eclipse gleich eine Menge Problemanzeigen:
Diese Zeile enthält Mehrfachmarkierungen
- Nicht behandelter Ausnahmebedingungstyp (exception type) InstantiationException
- Nicht behandelter Ausnahmebedingungstyp (exception type) IllegalAccessException
- Nicht behandelter Ausnahmebedingungstyp (exception type)
UnsupportedLookAndFeelException
- Nicht behandelter Ausnahmebedingungstyp (exception type) ClassNotFoundException

und ein Versuch, das Programm zu starten, misslingt.

Danke für Unterstützung.

Frank
 
Zuletzt bearbeitet von einem Moderator:
Hallo Frank,
ich hatte dir schon in dem anderen Thread geantwortet aber jetzt halt hier 😀

Eclipse warnt dich, dass du verschiedene Ausnahmen(Exceptions) die möglicherweise Auftreten nicht Abfangen möchtest. Wenn eine Methode mit einer ziemlich großen sicherheit einen bestimmten Fehler produzieren kann dann werden an sie sogenannte throw Deklaration an gehangen die der Programmieren mit eine try-catch schleife abfangen muss. Der vorteil daran ist das das Programm nach einem Fehler in einem try-catch block trotzdem weiter Arbeitet und nicht stoppt.

Java8
Java:
private void loadLnF(){
	try {
		UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
	} catch (ClassNotFoundException | InstantiationException| IllegalAccessException | UnsupportedLookAndFeelException e) {
		// Alles was hier steht wird gemacht wenn einer dieser bestimmten Fehler(siehe oben) Auftritt.
		
		//Gibt den Fehler in dern Console aus
		e.printStackTrace();
	}
}

Java7
Java:
private void loadLnF(){
		try {
			UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
		} catch (ClassNotFoundException e) {
			// Alles was hier steht wird gemacht wenn dieser bestimmten Fehler(siehe oben) Auftritt.
				
			//Gibt den Fehler in dern Console aus
			e.printStackTrace();
		} catch (InstantiationException e) {
			// Alles was hier steht wird gemacht wenn dieser bestimmten Fehler(siehe oben) Auftritt.
				
			//Gibt den Fehler in dern Console aus
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			// Alles was hier steht wird gemacht wenn diese bestimmten Fehler(siehe oben) Auftritt.
				
			//Gibt den Fehler in dern Console aus
			e.printStackTrace();
		} catch (UnsupportedLookAndFeelException e) {
			// Alles was hier steht wird gemacht wenn dieser bestimmten Fehler(siehe oben) Auftritt.
				
			//Gibt den Fehler in dern Console aus
			e.printStackTrace();
		}
	
}

Gruß Simon 🙂
 
Danke, das hab ich - glaub ich - kapiert. Es wundert mich allerdings, dass der Aufruf einer Standardmethode der Sprache als besonders fehleranfällig angesehen wird. ...

Vielen Dank.
 
Er hat das nicht gelöscht, sondern ich hab das verschoben, weil es zwar um das selbe Thema eines LnF geht, aber nicht um das selbe Problem.

Also für jede spezielle Frage, bitte ein eigenes Thema öffnen.
 
Ja Flown habe ich dann auch gemerkt und meinen Betrag im alten Thread zu "(Antwort auf verschobenen Thread)" geändert.

Die Methode wird als besonders Fehler anfällig angesehen weil der User sie selbst beeinflussen kann. Stell dir mal vor du verwendest eine selbst geschriebenes Linux für das du kein Standard LnF hat und dann?
 

Neue Themen


Zurück
Oben