# Betriebssystem auslesen



## yeTh7 (31. Jul 2005)

Hallo!

Ich hab folgendes Problem:
Ich wollte meine GUI, nett wie ich bin, von ihrem hässlichen Standard-"Look and Feel" befreien und hab das Windows-Look and Feel reingeladen.

Jetzt ist Java aber nicht gerade die schnellste Programmiersprache und da sollte man sich nicht noch ihren größten Vorteil verbauen -> die Plattformunabhängigkeit.

Da das XP-Look and Feel nur auf Windows-Rechnern läuft, wollte ich fragen, ob man irgendwie das Betriebssystem auslesen kann, um dann entweder Windows L&F oder plattformunabhängiges L&F zu laden.

Kennt sich da jemand aus?
Danke...


----------



## Roar (31. Jul 2005)

yeTh7 hat gesagt.:
			
		

> Jetzt ist Java aber nicht gerade die schnellste Programmiersprache


 äscht? na wenn das alle heisetrolls sagen stimmts woh  

http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/UIManager.html#getSystemLookAndFeelClassName()


----------



## lin (31. Jul 2005)

Schau dir mal die Klasse System an (die Methode getProperty().


----------



## Grizzly (31. Jul 2005)

Es gibt die Möglichkeit, das Betriebssystem über die System-Eigenschaften auszulesen: Entweder über die Methode *getProperties*() oder direkt über *getPropert*(String key).
Da steht bspw. bei meinem Microsoft Windows XP Home u.a. drin:

```
os.arch=x86
os.name=Windows XP
os.version=5.1
```

Aber eigentlich müsstest Du das auch direkt über das Look & Feel herausbekommen - also ob es von der aktuellen Platform unterstützt wird, oder nicht: Ruf' einfach die Methode  *isSupportedLookAndFeel*() auf das entsprechende Look & Feel auf. Dann sollte eigentlich _false_ zurück geliefert werden, wenn es nicht mit dem Betriebssystem funktioniert.


----------



## yeTh7 (31. Jul 2005)

Roar hat gesagt.:
			
		

> yeTh7 hat gesagt.:
> 
> 
> 
> ...


Sorry, wollte niemanden beleidigen...  :wink: 
Ich meinte nur, dass Java langsamer sei als zB ein *gleichwertig* sauber programmierter C++ Code. (Stichwort 3D Graifk-Engines bei Spielen)

Danke für die Antworten!


----------



## EagleEye (31. Jul 2005)

wozu gibt es eigendlich die funktion getSystemLookAndFeel oder so ähnlich in System?


----------



## L-ectron-X (1. Aug 2005)

Wenn ich meiner Anwendung das System-LookAndFeel verpassen möchte, auf dem das Programm läuft, schreibe ich etwas ähnliches so ziemlich zuerst in den Konstruktor. Also im Prinzip, was Roar vorgeschlagen hat.

```
try {
         UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
      }
      catch(ClassNotFoundException cnfe) {System.out.println("Klasse nicht gefunden!");}
      catch(InstantiationException ie) {System.out.println("Fehler bei Objekterzeugung!");}
      catch(IllegalAccessException iae) {System.out.println("Unerlaubter Zugriff!");}
      catch(UnsupportedLookAndFeelException ulafe) {System.out.println("Nicht unterstütztes LookAndFeel!");}
```


----------



## lin (1. Aug 2005)

> Ich meinte nur, dass Java langsamer sei als zB ein gleichwertig sauber programmierter C++ Code. (Stichwort 3D Graifk-Engines bei Spielen)


Bei 3DSpielen schon, aber ist es sonst zwangsläufig so ? ???:L


----------



## L-ectron-X (1. Aug 2005)

Nein. Ich habe mal in der c't einen Bericht gelesen, bei dem C++, C#, und Java gegeneinander angetreten sind.
In vielen Bereichen des Tests sah C++ gegenüber Java ziemlich alt aus. C# machte in den meisten Testgebieten die meisten Punkte.


----------



## lin (1. Aug 2005)

hehe, war sicher von Microsoft gesponsert der Artikel ;-)


----------



## EagleEye (1. Aug 2005)

L-ectron-X hat gesagt.:
			
		

> Nein. Ich habe mal in der c't einen Bericht gelesen, bei dem C++, C#, und Java gegeneinander angetreten sind.
> In vielen Bereichen des Tests sah C++ gegenüber Java ziemlich alt aus. C# machte in den meisten Testgebieten die meisten Punkte.


Haste den irgendwie im Inet wäre schön den zu sehen


----------



## L-ectron-X (1. Aug 2005)

Ich glaube der hier ist es:
http://www.heise.de/ct/inhverz/search.shtml?T=C#+im+Vergleich+mit+C+++und+Java&Suchen=suchen


----------

