Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : AWT und SWING gleichzeitig - was bringt's?



Lin728
24-06-2002, 22:30
Hallo wiedermal!

Da ja unter Linux/Solaris SWING so furchtbar langsam ist (unter Windows haben die das extrem getuned im Vergleich zu JDK1.2.2) hab ich mir überlegt, ob es nicht sinn machen würde AWT und SWing zu kombinieren.
Ich stelle für SWING einfach das PlatformLooknFell ein und alle komponenten, dies in AWT nicht gibt zeiche ich in SWING. Das meiste was man so braucht kann eh AWT auch aber ganz ohne SWING is es schon ein bissal hart...

Hat wer schon Erfahrungen mit der Kombination Lightweight/Heavyweight-komponenten, macht das Sinn?

Ach ja, noch was: Welchen Gui-Builder würdet Ihr mir zum designen empfehlen?

Doc Maverick
25-06-2002, 15:38
Hi Clemens,
ich glaube, daß Du da etwas misverstanden hast: SWING ist ein "Aufsatz" zu AWT.
Z.B. werden Ereignisse über AWT behandelt. Der SWING-Programmierer verwendet also auch AWT.
Der Einsatz von AWT ist eigentlich nicht so erstrebenswert, da einige Sachen ziemlich in Richtung "Urschleim" gehen. ;)
Aber trotzdem wünsche ich Dir viel Spaß beim Experimentieren.
Tschüß.

Lin728
28-06-2002, 21:16
Danke für das Feedback!

Nein, nein, ich habe das nicht falsch verstanden. Alle AWT-Widgets werden von einem nativen widget-set das auf Platform zu platform verschieden ist (Linux/Motif, Windows/WindowsAPI, Mac/MacGui) gezeichnet, es ist also viel nativer (in diesem Fall C und C++) Code enthalten, der in den meisten Fällen sehr betriebsystemnah geschrieben ist, wodurch das ganze sauschnell wird.

SWING nützt zwar ein paar funktionen von AWT, ist aber was ganz eigenständiges. Bei swing wird nur das fenter von einem nativen Aufruf bereitgestellt, alle Widgets werden mit primitiven Zeichenfunktionen aus Java heraus gezeichnet. Das ist zwar dann 100% portabel und man ist nicht mehr auf die Platform-spezifischen Funktionen angewiesen, ist aber aufgrund des "3x um die Ecke"-Prinzips auch sehr langsam.

Meine Frage war , ob es möglich ist, sog. lightweight(SWING) und heavyweight(AWT)-Komponeten zu mischen, um z.B. Widgets die in AWT nicht verfügbar mit swing zu realisieren.