# Eclipse + SWT, AWT installation



## Crashbreaker (27. Mai 2011)

Hallo Leute,

da ich hier neu bin und ich mich gar nicht so gut auskenne, hoffe ich mal sehr, dass ich mein Beitrag richtig gesetzt habe.

Ich hoffe ihr könnt mir helfen.
Irgendwie schnalle ich die Logik von Eclipse nicht.


Ich möchte auf meinem neuen Eclipse Version den GUI (SWT, AWT, Swings etc.) installieren.
Doch irgendwie scheint es nicht zu funktionieren.

Leider mit den ganzen Abkürzungen von Eclipse was man da so alles installieren kann komme ich nur teilweise mit klar.

Ich wäre euch sehr dankbar, wenn ihr mir in kürze helfen könnt.

MfG
Daniel


----------



## Haave (27. Mai 2011)

Das hab ich jetzt nicht verstanden. AWT und Swing sind Bestandteile der Java-API und dienen dazu, grafische Benutzeroberflächen zu programmieren. SWT ist ein externe Bibliothek, mit der man ebenfalls GUIs programmieren kann. Das brauchst du nicht in Eclipse zu installieren. Was / wie möchtest du da also etwas in Eclipse "installieren"? Möchtest du wissen, wie man die JARs zu SWT in ein Projekt bei Eclipse einbindet?


----------



## Crashbreaker (27. Mai 2011)

Hallo Haave,

ich danke zunächst für deine Antwort.
Jaein, habe es etwas undeutlich geschrieben, sorry.

Das AWT und Swing Bestandteile der Java-APIs sind weiß ich, doch wie nutze ich das in Eclipse.
Ich wollte es eher im Eclipse so haben, dass man mit der Maus einfach die GUI sich zusammen  bastelt, durch Drag & Drop etc. 
Natürlich wäre mir deine letzte Frage auch sehr interessant.

Ich bedanke mich für eure Mühe im Voraus und hoffe in kürze hier eine Antwort zu bekommen.

MfG
Daniel


----------



## Wildcard (27. Mai 2011)

WindowBuilder
Allerdings wirst du nicht sehr weit damit kommen wenn du nicht auch händisch dazu in der Lage bist eine Oberfläche zu erstellen.


----------



## Crashbreaker (31. Mai 2011)

Hallo Wildcard,

danke für deine Hilfe, genau so was habe ich gesucht.
Sorry, dass ich etwas spät antworte, war die Tage etwas krank.

Aber ich habe mit dem ein Problem.
Ich habe das soweit wie es beschrieben ist installiert und nach dem ich es ausführen wollte fehlten ihm (eclipse) einige jar Dateien. Somit lief natürlich der Designer nicht.

Ich habe zur Testzwecke ein Java-Projekt angelegt, dort ein Packet erstellt und in diesem Packet ein SWT Aplication Window hinzugefügt. Diese benutzt allerdings die folgenden libs ...

import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

Da fehlen natürlich diese entsprechende Jar-Dateien :-(.

Was kann man da machen?
Ich habe auf der entsprechende Webseite mir die Dokumentation angeschaut und niergendswo ein Hinweis dazu gefunden.

Abgesehen davon sollte es nicht die SWT, Swings oder AWT von JRE benutzen?
Die die ich installiert habe benutzt die von Eclipse ... was ja wiederum doof ist.

Desweiteren war doch früher der Designer etwas anders von der Benutzung her.
Ich habe auch gesehen, dass diese hier von Google selbst ist. 
Gibt es da nichts eigenes von Java selbst?

Zu letzt die Frage:
Wieso sollte ich mit so etwas nicht weit kommen Wildcard?
Das erleichterrt doch wesendlich mein Tiparbeit.
Wo gibt es denn eine vernünftige deutsche beschreibung für so etwas?
Ich habe nur Sachen gefunden, wo es nur angerissen wird und irgendwie fehlt mir da der Anfang und Ende...

Ich hoffe ich habe da nicht so viele Fragen auf einmal gestellt und könnt mir die trotzdem alle beantworten.
Ich bedanke mich schon mal im Voraus!

Bitte um Hilfe!

MfG
Daniel


----------



## Gastredner (31. Mai 2011)

AWT und Swing sind immer verfügbar, da sie Bestandteil von JRE/JDK sind. Es gibt auch kein "Eclipse-AWT/Swing" (achte auf die Importe - alles aus den Packages java und javax ist Bestandteil des JRE/JDK).
SWT ist Bestandteil von Eclipse (daher auch die org.eclipse-Packages), allerdings auch getrennt verfügbar (SWT: The Standard Widget Toolkit). Du musst das swt.jar dem Build Path deines Projekts hinzufügen, anschließend sind die SWT-Klassen verfügbar (leg am besten im Projekt einen Ordner "lib" an, kopiere das Jar dort hinein und füge es über Rechtsklick -> Build Path -> Add to Build Path dem Build Path hinzu).
Von GUI-Buildern wird hier gener mal abgeraten, da sie zwar die Arbeit vereinfachen können, dem Entwickler aber bei ausschließlicher Nutzung der GUI-Builder im Nachhinein einfach das Wissen um die händische Nutzung der Toolkits fehlt. Willst du etwas erreichen, was mit GUI-Buildern out of the box nicht funktioniert, so bist du in diesem Falle natürlich erst einmal aufgeschmissen.


----------



## Sonecc (31. Mai 2011)

Der WindowBuilder bindet dir die benötigten Jars automatisch ein, sofern du ein entsprechendes Projekt benutzt. Gehe dafür auf New -> Project... -> WindowBuilder -> SWT Designer -> SWT/JFace Java Project


Kann mich den anderen aber nur anschließen. Bevor du dir die GUIs zusammenklickst ist es sinnvoll zu wissen, wie man selbst welche schreibt, denn solche Tools können dir nicht alles abnehmen. Zudem glaube ich, dass dir allgemein einiges an Grundlagen fehlt, weshalb eine Gui-Entwicklung wohl noch etwas zu früh kommen dürfte.


----------



## Crashbreaker (31. Mai 2011)

Gastredner hat gesagt.:


> AWT und Swing sind immer verfügbar, da sie Bestandteil von JRE/JDK sind. Es gibt auch kein "Eclipse-AWT/Swing" (achte auf die Importe - alles aus den Packages java und javax ist Bestandteil des JRE/JDK).
> SWT ist Bestandteil von Eclipse (daher auch die org.eclipse-Packages), allerdings auch getrennt verfügbar (SWT: The Standard Widget Toolkit). Du musst das swt.jar dem Build Path deines Projekts hinzufügen, anschließend sind die SWT-Klassen verfügbar (leg am besten im Projekt einen Ordner "lib" an, kopiere das Jar dort hinein und füge es über Rechtsklick -> Build Path -> Add to Build Path dem Build Path hinzu).
> Von GUI-Buildern wird hier gener mal abgeraten, da sie zwar die Arbeit vereinfachen können, dem Entwickler aber bei ausschließlicher Nutzung der GUI-Builder im Nachhinein einfach das Wissen um die händische Nutzung der Toolkits fehlt. Willst du etwas erreichen, was mit GUI-Buildern out of the box nicht funktioniert, so bist du in diesem Falle natürlich erst einmal aufgeschmissen.



Ah langsam kommen wir der Sache näher, hehe ...
Warum waren die swt.jar denn bei der Installation nicht dabei?
Das ist es ja, was mich eigentlich bei Eclipse stört - alles muss man aus der Nase quasi ziehen ... 
Naja, bin froh, dass ich euch habe, denn sonst wäre ich richtig gelackmeiert ...

Ich habe den swt.jar aus dem einen Link den du mir gegeben hast runter geladen.
Doch gibt es diese denn nicht auch für 64-Bit Systeme?
Ich habe festgestellt, dass da ein src.zip Datei vorhanden ist und ein Verzeichnis Names "about_files" - sind die denn auch irgendwie relevant bzw. muss ich sie auch in mein Projekt hinzufügen?

Grunde genommen hast du mit deine Meinung recht, doch einige Begrifflichkeiten etc. fehlt manchmal während der Programmierung und da kommt so ein GUI-Builder gut zu recht.
Denn der Hilft einem ja ... 

Aber eine Frage habe ich dann noch.
Warum gibt es denn den SWT von Eclips, wenn doch ja von JRE/JDK AWT und Swing gibt?
Was sind da die unterschiede etc.?

Ich danke euch schon mal im Voraus!

MfG
Daniel


----------



## Crashbreaker (31. Mai 2011)

Sonecc hat gesagt.:


> Der WindowBuilder bindet dir die benötigten Jars automatisch ein, sofern du ein entsprechendes Projekt benutzt. Gehe dafür auf New -> Project... -> WindowBuilder -> SWT Designer -> SWT/JFace Java Project
> 
> 
> Kann mich den anderen aber nur anschließen. Bevor du dir die GUIs zusammenklickst ist es sinnvoll zu wissen, wie man selbst welche schreibt, denn solche Tools können dir nicht alles abnehmen. Zudem glaube ich, dass dir allgemein einiges an Grundlagen fehlt, weshalb eine Gui-Entwicklung wohl noch etwas zu früh kommen dürfte.




Hey, danke Sonec ...
Hat super geklappt ...

Ja für ein Anfänglichen Programmierer hast du vollkommen recht.
Doch mit OOP komme ich eigentlich sehr gut zu recht ... Bin seit einigen Jahren in PHP (leider nur Skriptsprache) Experte in dem Gebiet und habe auch einige sehr große, komplexe Projekte entwickelt.
Java habe ich früher, ca. vor 8-10 Jahren ebenfalls programmiert.
Bin nur etwas raus aus der Materie (bin etwas eingerostet so zu sagen) und da sind reichlich vieles neu dazu gekommen - das ist eigentlich alles.

Früher, also in meiner Zeit gab es Eclipse noch gar nicht ... da gab es Borland usw. 

MfG
Daniel


----------



## Crashbreaker (31. Mai 2011)

Hallo noch einmal,

kann mir jemand hier veraten, wie ich ein Java Projekt in Eclipse erstelle, wo später die Start-Datei per Doppelklick gestartet werden kann?
Das war früher möglich, doch so durch den Builder bekomme ich es nicht hin.

Oder gehe ich falsche schritte ...
Kann mir hier jemand die Schritte nennen?

Würde mich echt sehr freuen!

MfG
Daniel


----------



## Gastredner (31. Mai 2011)

Crashbreaker hat gesagt.:


> Warum waren die swt.jar denn bei der Installation nicht dabei?
> Das ist es ja, was mich eigentlich bei Eclipse stört - alles muss man aus der Nase quasi ziehen ...


Man kann nun einmal nicht entwickeln, wenn man von den Tools und Grundlagen keine Ahnung hat. Das hat nichts mit Eclipse an sich zu tun, sondern findet sich bei jeder Programmiersprache/IDE/sonstiger Arbeit.
und SWT wird beim JRE nicht mitgeliefert, da es sich nicht um einen Bestandteil der Java-Runtime handelt. SWT ist ein Open-Source-Projekt der Eclipse Foundation.



> Ich habe den swt.jar aus dem einen Link den du mir gegeben hast runter geladen.
> Doch gibt es diese denn nicht auch für 64-Bit Systeme?


Ich meine, es gab keine fertig kompilierte 64-Bit-Version. Viele verwenden auch noch die 32-Bit-JVM, da es mit der 64er wohl teilweise Probleme gibt. Wenn möglich, stell JDK und Eclipse auf 32 Bit um. Ansonsten müsstest du im Zweifelsfall selbst die SWT-Sourcen (zumindest den C-/C++-Teil) selbst kompilieren.



> Ich habe festgestellt, dass da ein src.zip Datei vorhanden ist und ein Verzeichnis Names "about_files" - sind die denn auch irgendwie relevant bzw. muss ich sie auch in mein Projekt hinzufügen?


Du kannst sie in den Eigenschaften von swt.jar im Build Path als Source Location angeben. Hat den Vorteil, dass Eclipse dir anschließend automatisch aus den Sourcen die Javadoc-Dokumentation zieht und du dir in Eclipse (inklusive Debugger) die SWT-Sourcen ansehen kannst (zumindest den Java-Teil).

Grunde genommen hast du mit deine Meinung recht, doch einige Begrifflichkeiten etc. fehlt manchmal während der Programmierung und da kommt so ein GUI-Builder gut zu recht.
Denn der Hilft einem ja ... 



> Warum gibt es denn den SWT von Eclips, wenn doch ja von JRE/JDK AWT und Swing gibt?
> Was sind da die unterschiede etc.?


AWT ist de facto veraltet und interessiert niemanden mehr. Swing ist das "offizielle" GUI-Toolkit der Java-Runtime und basiert nicht auf nativen Widgets, sondern zeichnet sich selbst. Dadurch ist Swing auf allen Betriebssystemen mit JRE verfügbar. Zudem lässt sich das Look and Feel anpassen.
SWT ist ein Open-Source-Projekt der Eclipse Foundation und ist für diverse Betriebssysteme verfügbar. Im Gegensatz zu Swing greift es auf die nativen Widgets des Betriebssystems zurück. SWT wird oftmals zusammen mit der (leider nicht von Eclipse getrennt erhältlichen) JFace-Bibliothek verwendet, die SWT um objektorientiert arbeitende Widget-Container und viele andere nützliche Dinge ergänzt (z. B. ein Framework für Dialoge und Wizards). SWT wurde ursprünglich geschaffen, weil Swing oftmals nicht wie die nativen Anwendungen aussah und vor einiger Zeit auch noch mit Performance-Problemen zu kämpfen hatte. Heute ist die Anwendung von Swing oder SWT oftmals Geschmackssache. SWT ist besser in die unterliegende Plattform integriert, Swing dafür plattformunabhängig und auch ohne Erweiterungsbibliotheken wie JFace gut nutzbar.
Lies dir vielleicht einmal die SWT- und JFace-Kapitel aus dem Eclipse-RCP-Buch durch, um einen Eindruck von SWT zu erhalten. Swing wird in praktisch jedem Java-Buch erklärt, z. B. der Insel.


----------



## Wildcard (2. Jun 2011)

> Ich meine, es gab keine fertig kompilierte 64-Bit-Version.


Doch gibt es. SWT und JFace kann man direkt aus dem plugins Verzeichnis von Eclipse kopieren, oder von der Update Site herunterladen. Auf der Update Site finden sich auch die platformspezifischen binaries für SWT. Alternativ kann man das Delta Pack herunterladen, dort sind sie ebenfalls enthalten


----------



## Crashbreaker (2. Jun 2011)

> Du kannst sie in den Eigenschaften von swt.jar im Build Path als Source Location angeben. Hat den Vorteil, dass Eclipse dir anschließend automatisch aus den Sourcen die Javadoc-Dokumentation zieht und du dir in Eclipse (inklusive Debugger) die SWT-Sourcen ansehen kannst (zumindest den Java-Teil).



Das klingt gut, doch wie meinst du das bzw. ich verstehe es nicht wie ich das bei Eclipse machen kann?
Wie kann ich es denn als Source Location angeben?

MfG
Daniel


----------



## Crashbreaker (2. Jun 2011)

Wildcard hat gesagt.:


> Doch gibt es. SWT und JFace kann man direkt aus dem plugins Verzeichnis von Eclipse kopieren, oder von der Update Site herunterladen. Auf der Update Site finden sich auch die platformspezifischen binaries für SWT. Alternativ kann man das Delta Pack herunterladen, dort sind sie ebenfalls enthalten



Welche Datei(n) wären es denn genau ???

MfG
Daniel


----------



## Gastredner (3. Jun 2011)

Crashbreaker hat gesagt.:


> Wie kann ich es denn als Source Location angeben?


Die Bibliothek dem Build Path hinzufügen (im Project Explorer Rechtsklick auf die Bib -> Build Path -> Add to Build Path), dann mit der rechten Maustaste auf den Build-Path-Eintrag der Bib klicken (_nicht_ das .jar selbst, sondern dessen Eintrag im Build Path - erscheint normalerweise unter "Referenced Libraries") und dann den Eigenschaftendialog über den Menüeintrag "Properties" aufrufen. Dort dann das .zip als Source Location angeben.


----------

