# Was lernen: AWT und/oder Swing?



## BigmasterDenis (10. Nov 2004)

Hallo Leute!

Ich versuche mir seit einiger Zeit selbst bisschen Java beizubringen. Will nämlich nächstes Jahr Informatik studieren und schon einigermaßen fit in Java sein  :wink: 

So nun zu meiner Frage:

In Java-Büchern lese ich oft, dass AWT veraltet wäre und nun durch Swing ersetzt wird. In einigen Büchern wird das AWT gar nicht erst behandelt... 

Daher frage ich mich kann man auf AWT ganz verzichten und sich nur mit Swing auseinander setzen? Hab auch mal gelesen, dass einige Browser mit Swing-Applets nicht klar kommen... ist da ws dran? 

Wisst ihr ob AWT an den Unis bzw. FHs überhaupt noch behandelt wird?


thanx4help


----------



## Sky (10. Nov 2004)

Also, ich weiß zwar nicht, was an einer UNI oder FH behandelt wird. Aber: Ich habe mit Swing angefangen und kann daher nur sagen: Wenn Du dass einigermaßen verstanden hast, so ist AWT auch gar kein Problem. 
Es gibt zwar Unterschiede, aber damit kommt man m.E. klar. Prinzipiell benutzt Du nur andere Klassen...


----------



## Student (10. Nov 2004)

sky80 hat gesagt.:
			
		

> Prinzipiell benutzt Du nur andere Klassen...


joa. würde ich auch behaupten.

ich habe noch gar nicht mit AWT gearbeitet .. nur mit Swing. 
eventuell mal unbewusst, als ich eine klasse eines anderen verwendet habe? kA ^^


----------



## bygones (10. Nov 2004)

ich empfehle auch Swing - einfach weil ich es besser und mächtiger find....


----------



## Sky (10. Nov 2004)

Wichtig bei der Entscheidung, ob man Swing oder AWT lernt sind -speziell im Berufsleben- die Anforderungen. Wenn Du z. B. ein _kleines_ Applet bauen sollst, was bei allen Anwendern laufen soll, so ist AWT oft eine Alternative. 

Soll es dagegen etwas _größeres_ sein und Du kannst dem Anwender sogar ein JRE 'aufzwingen' ist Swing wahrscheinlich die bessere Alternative.


----------



## dotlens (10. Nov 2004)

für applets ist awt oft bessert, da fast alle User awt anzeigen können. da swing erst ab 1.2 (richtig?) da ist und die Users oft eine älter JRE haben, können Sie swing nicht anzeigen...

für Aplikationen würd ich dir nur swing empfehlen.


----------



## BigmasterDenis (10. Nov 2004)

Danke! Danke!



> ...und Du kannst dem Anwender sogar ein JRE 'aufzwingen'...



Laufen Swing-Applets denn nicht mit der JVM?


----------



## Sky (10. Nov 2004)

BigmasterDenis hat gesagt.:
			
		

> Danke! Danke!
> 
> 
> 
> ...



Swing gibt es erst ab JAVA 1.2.2

Wenn der USER ein Vorgängerversion hat, so in seiner JRE (also die Laufzeitumgebung; dazu gehört auch die VM) ein Swing-Applet nicht angezeigt.


----------



## dotlens (10. Nov 2004)

BigmasterDenis hat gesagt.:
			
		

> Laufen Swing-Applets denn nicht mit der JVM?


JVM ist ein teil der JRE


----------



## BigmasterDenis (10. Nov 2004)

...das die JVM Bestandteil von JRE ist weiß ich ja. Doch ist JRE nicht zwingend nötig um JVM zu installieren... 
Mit anderen Worten die JVM lässt sich auch seperat runterladen. Ich denk mal die meisten "normal-user" werden nichts weiter als die JVM auf ihren Rechnern haben.


----------



## Beliar (10. Nov 2004)

Du verwechseltst da was. Vielleicht meinst du das SDK (oder JDK) und nicht JRE.
JRE = Java Runtime Environment. Die laufzeitumgeben, also da ist die VM drin und noch ein paar tools.
Aber die vm alleine kann man nicht runter laden, die ist ja da dabei.


----------



## BigmasterDenis (10. Nov 2004)

Doch hier: http://java.sun.com/
JVM allein ca. 5 mb. JRE ca 15 mb


----------



## Bleiglanz (10. Nov 2004)

faustregel

awt -> nur noch bei applets, wenn man (superverkrampft) alle uralten jvm ab 1.1. unterstützen will

sonst (insbesondere für Desktop Apps) nur swing


----------



## Student (10. Nov 2004)

darf ich kurz mal in diese diskussion den begriff SWT einbringen?
ähem .. wie sieht es denn damit so aus?

also ich habe mich damit nur kurz befasst ... demnach danke für infos ;-)


----------



## Bleiglanz (10. Nov 2004)

SWT ist IMHO die überlegenere Lösung, wenn man natives Look and Feel will und bereit ist, seinen Anwendungen immer ein paar native Bibliotheken (dll oder so) beizulegen

im Prinzip die turbo-Version von AWT (also nur ein "dünner" Wrapper über das Betriebssystem) und nicht so mächtig wie Swing - dafür schön schnell (Swing ist aber heutzutage auch schnell genug)


----------



## Student (10. Nov 2004)

hört sich für mich jetzt so an, als ob man für die verwendung von SWT zusätzliche resourcen laden müsste.
à la flahsplayer downloaden sonst läuft die flashseite nicht ..

hab ich das richtig verstanden?


----------



## SebiB90 (10. Nov 2004)

aber wenn man nur swing nutzt gibt es paar probleme z.b. ich kenn keine color class in swing oder hab ich da was übersehen?


----------



## Student (10. Nov 2004)

nö. gibt es nicht.
so wie ich das verstanden habe ist doch SWING auch nur eine erweiterung, welche trotzdem auf komponenten von AWT zugreift, oder?

berichtigt mich, wenn ich falsch liege.
das ist halbwissen meinerseits.


----------



## CircleSmiler (10. Nov 2004)

Student hat gesagt.:
			
		

> hört sich für mich jetzt so an, als ob man für die verwendung von SWT zusätzliche resourcen laden müsste.
> à la flahsplayer downloaden sonst läuft die flashseite nicht ..
> 
> hab ich das richtig verstanden?



Richtig, man muss seinem Programm die für das entsprechende Betriebssystem passenden DLL's beilegen. Dass liegt daran, dass SWT die Betriebseigenen Routinen für Oberflächen benutzt...(salopp ausgedrückt) Ist aber eigentlich halb so schlimm... wenn man bedenkt, dass SWT meiner Meinung nach wesentlich schneller ist und sich viel besser in die Betriebssystemumgebung einpasst (im Gegensatz zu SWING, was nur so tut als ob). Als Vorzeigebeispiel sei die Programmierumgebung ECLIPSE genannt. Eclipse ist in SWT programmiert.

Man muss natürlich auch sagen, dass SWT etwas schwieriger zu handhaben ist, was aber einen richtigen Programmierer nicht abhalten sollte es zu nutzen. In Applets wird es, soweit ich weiß, nicht unterstützt. Und es gibt sehr wenig Dokumentation und Tutorials dafür. Falls jemand weiß, wo mein ein Tutorial zur Klasse CTabFolder findet, der möge dass nicht für sich behalten...


----------

