Jörg Peschke: GUI-Entwiccklung mit Eclipse: SWT, SWING, AWT, was denn nun?

Grüße, Forumsbenutzer!
Ich bastele derzeit in meiner Freizeit an einem kleinen PodCatcher in Java
(ja, ich weiss, gibt's schon :( , aber es geht ja ums Prinzip, der Weg ist das Ziel!).

Entwickeln tu ich unter Eclipse (unter Linux).

Die Klassen fürs "Backend" sind soweit fertig, jetzt gehts ans Gui-Basteln.

Meine Fragen dazu:
 - Zu meiner "aktiven Java-Zeit" an der Uni gab es nur AWT und Swing, inzwischen
   ist ja SWT noch dazugekommen. Was könnt Ihr empfehlen? Vor allem für einen
   Java-Gui-Anfänger wie mich? Nach meinen bisherigen Recherchen sind SWT
   und Swing ähnlich leistungsfähig, SWT scheint sich aber etwas besser
   in das jweilige Betriebssystem-Look-and-fell einzubetten, ist das richtig?

- Könnt Ihr einen guten Editor zum Bauen der GUI empfehlen? Ich habe mir den
   Visual Editor
   installiert, leider führt der unter Linux zu Abstürzen des gesamten
   Eclipse-Frameworks :(

Danke schonmal für alle Tipps!

Jörg

  1. Tag zusammen.

    Meine Fragen dazu:

    • Zu meiner "aktiven Java-Zeit" an der Uni gab es nur AWT und Swing, inzwischen
         ist ja SWT noch dazugekommen. Was könnt Ihr empfehlen?

    Die Fähigkeiten von AWT sind doch arg begrenzt, ich würde die Finger davon lassen.

    SWT scheint sich aber etwas besser in das jweilige Betriebssystem-Look-and-fell einzubetten, ist das richtig?

    Das ist grundsätzlich erstmal richtig, das Standard-Swing-Look-And-Feel (Metal?) ist auch unter 1.5 noch ziemlich hässlich und hat plattformübergreifend dasselbe Aussehen.

    Mir persönlich hat unter Windows aber stets ein -Dswing.defaultlaf=com.sun.java.swing.plaf.windows.WindowsLookAndFeel gereicht - das Windows-Look-And-Feel ist zumindest annehmbar, wie es um die Integration in die verschiedenen Linux-Umgebungen bestellt ist, weiß ich leider nicht. Ansonsten gibt es für Swing aber eine Vielzahl von Freeware-Bibliotheken, die das LaF weiter aufbohren (z.B. die hier).

    Wenn du mit Eclipse arbeitest, sollte dir ja klar sein, was SWT leisten kann, das Swing-basierte Pendant dazu ist NetBeans (Screenshots).

    Weitere Vergleichsprogramme sind Azureus (SWT) und Columba (Swing).

    Azureus ist vielen ein Begriff, Columba (ein Mail-Client) ist Swing-basiert und setzt flexdock ein (die Demo dazu ist ganz nett).

    • Könnt Ihr einen guten Editor zum Bauen der GUI empfehlen?

    Leider nein, alle GUIs, die ich bisher verbrochen habe, ließen sich noch gut per Hand bauen.

    Gruß
     Christoph

    1. Hej,

      • Zu meiner "aktiven Java-Zeit" an der Uni gab es nur AWT und Swing, inzwischen ist ja SWT noch dazugekommen. Was könnt Ihr empfehlen?

      Die Fähigkeiten von AWT sind doch arg begrenzt, ich würde die Finger davon lassen.

      Hmm, also da Swing AWT erweitert, dürfte das schwierig werden.

      Beste Grüße
      Biesterfeld

      --
      Art.1: Et es wie et es
      Art.2: Et kütt wie et kütt
      Art.3: Et hätt noch immer jot jejange
      Das Kölsche Grundgesetz
      1. Moin.

        Die Fähigkeiten von AWT sind doch arg begrenzt, ich würde die Finger davon lassen.

        Hmm, also da Swing AWT erweitert, dürfte das schwierig werden.

        Erbsenzähler ;) - was ich sagen wollte, ist, dass es wesentlich einfacher ist, komplexe Benutzeroberflächen mit den in javax.swing zur Verfügung gestellten Klassen zu Gestalten, als wenn man nur die in java.awt liegenden benutzt. Kein JSplitPane, kein JTree, kein was-sonst-noch-fehlt...

        Wie immer gilt natürlich: nutze das Werkzeug, das dem Problem angemessen ist; braucht man die Fähigkeiten von Swing nicht, steht es natürlich frei, reines AWT zu nutzen, ganz auf eine GUI zu verzichten oder sich alles selbst  zu paint()-en!

        Gruß
         Christoph

    2. Hallo,
      Vielen Dank für die Tipps. Die jgoodies-Bilbiothek sieht hübsch aus (ähm, darf man sowas als Programmierer eigentlich sagen? :) ), die werde ich mal probieren.

      Danke,

      Jörg

  2. Hej,

    Meine Fragen dazu:

    • Zu meiner "aktiven Java-Zeit" an der Uni gab es nur AWT und Swing, inzwischen ist ja SWT noch dazugekommen. Was könnt Ihr empfehlen? Vor allem für einen Java-Gui-Anfänger wie mich?

    Also wenn du GUI-Anfänger bist, würde ich erstmal wirklich den Einstieg über AWT empfehlen. Du wirst da zwar sehr schnell an Grenzen stoßen, aber das ist nicht schlimm, weil ab da wird sich dir die Welt von Swing erschließen.

    Nach meinen bisherigen Recherchen sind SWT und Swing ähnlich leistungsfähig, SWT scheint sich aber etwas besser in das jweilige Betriebssystem-Look-and-fell einzubetten, ist das richtig?

    Das ist zwar richtig, aber du solltest dabei zwei Aspekte zumindest berücksichtigen:
    1.) AFAIK setzt SWT nicht mehr auf AWT auf und schlägt somit eine andere Richtung ein.
    2.) Verlierst du bei SWT faktisch die Plattformunabhängigkeit. Während bei Swing die Java-Entwickler selber dafür Sorge tragen, dass für alle Platformen die entsprechenden Bibliotheken vorhanden sind, ist das bei SWT nicht der Fall und da SWT native Bibliotheken lädt ... Das ist allerdings nur eine theoretische Betrachtungsweise, praktisch ist die Umsetzung zumindest für Windows, Linuxe und OSe erfolgt.

    • Könnt Ihr einen guten Editor zum Bauen der GUI empfehlen?

    Jigloo soll toll sein. Aber guckst du am besten mal hier EclipsePluginCentral#UI

    Beste Grüße
    Biesterfeld

    --
    Art.1: Et es wie et es
    Art.2: Et kütt wie et kütt
    Art.3: Et hätt noch immer jot jejange
    Das Kölsche Grundgesetz