# Benutzeroberflächen erstellen?



## Kathy (14. Feb 2011)

Hey,
also ich bin hier noch ziemlich neu und hoffe ich stell es hier in die richtige Kategorie.
Also und zwar suche ich ein Programm mit dem man Benutzeroberflächen für Java erstellen kann
(so was in der art http://wiki.zum.de/images/b/bd/ListeGUI.gif ).

Bin eine Java Anfängerin also ich hoffe ich versteht was ich meine.
Also ein Programm mit dem ich per drag and drop buttons und so an einen Platz ziehen kann und das Programm schreibt dann den Java code für mich.

Ich benutze momentan eclipse, weiß nicht evtl. ist das ja relevant dafür.


Danke schon mal für alle Antworten =)


----------



## Gast2 (14. Feb 2011)

Netbeans hat einen integrierten Swing GUI Builder: Matisse, den finde ich nicht schlecht.
Für Eclipse gibts ein Plugin: Installing WindowBuilder Pro - Google Java Developer Tools - Google Code


----------



## nrg (14. Feb 2011)

was du suchst sind so genannte WYSIWYG (what you see is what you get) Editoren. Netbeans ist z.B. eine gute IDE für Java und kann sowas. Aber google doch einfach mal nach "wysiwyg editor java". wirst du denke einiges finden


----------



## jwiesmann (14. Feb 2011)

Welcome to NetBeans
ist ganz nett für solche Zwecke..zickt zwar manchmal rum, aber ansonsten ist es recht einfach zu handlen. Einfach mal die Tutorials lesen
Gruß Jörg

Edith sagt ich war zu langsam


----------



## frapo (14. Feb 2011)

Kathy hat gesagt.:


> Bin eine Java Anfängerin also ich hoffe ich versteht was ich meine.
> Also ein Programm mit dem ich per drag and drop buttons und so an einen Platz ziehen kann und das Programm schreibt dann den Java code für mich.



Auch wenn Du es vielleicht nicht hören magst aber als Anfänger sollte man a) vielleicht erstmal die Finger vom Thema GUI lassen. Und wenn es dann schon sein muss, b) ist vielleicht der Weg 'zu Fuss' - also den GUI-Code per Hand erstellen - auch sinnvoller. 

So lernt man einfach eher (denke ich) um was es grundsätzlich geht.

Gruß
frapo


----------



## Andi_CH (14. Feb 2011)

frapo hat gesagt.:


> Auch wenn Du es vielleicht nicht hören magst aber als Anfänger sollte man a) vielleicht erstmal die Finger vom Thema GUI lassen. Und wenn es dann schon sein muss, b) ist vielleicht der Weg 'zu Fuss' - also den GUI-Code per Hand erstellen - auch sinnvoller.
> 
> So lernt man einfach eher (denke ich) um was es grundsätzlich geht.



Hast du mit mit Maschinencode begonnen und bist dann zu Assembler übergegangen oder hast du gleich mit einer Hochsprache begonnen? Rhetorische Frage, ich weiss. Wir setzten auf Kompiler und sogar auf eine VM die uns sehr vieles abnimmt. Warum es immer noch keine brauchbaren GUI Builder gibt ist mehr als fraglich.


----------



## frapo (14. Feb 2011)

@Andi_CH

Spätestens beim Debuggen wird man sich freuen AWT von Swing unterscheiden zu können . Glaube nicht das es einem schlecht tut, dann festzustellen das man von beidem schonmal was gehört hat.

Zu Deiner Eingangsfrage: habe mit Assembler angefangen.


----------



## chalkbag (14. Feb 2011)

Da du wie ich gelesen habe ein Eclipse Anwender bist,  bietet sich hier der *WindowBuilder *an.

http://www.eclipse.org/proposals/tools.windowbuilder/

Ein wirklich gelungenes Projekt welches mittlerweile von einer kommerziellen Lösung, über ein Google Projekt den Weg in die Eclipse Foundation gefunden hat.

Am besten mal installieren, bisl rumklicken. An sich kann ein Wysidingsbums schon mal ganz praktisch sein, um sich einen Überblick zu verschaffen. Anschließend kannst du dich ja mit den Ideen und Konzepten der Oberflächenprogrammierung in Java beschäftigt.

So schön einfach wie "klick klick fertig " aus der Microsoft -Ecke geht’s dann leider / oder zum Glück (wie man das sehen will) doch nicht.

Grüße


----------



## Sonecc (14. Feb 2011)

Nur mal eingeworfen:

Über WYSIWYG Editoren bin ich in die Programmierung gekommen und mag behaupten, dass es nicht zum Nachteil war (war zwar damals noch VB und HTML, aber egal^^)

Ich denke, dass WYSIWYG Editoren einen soliden Einstieg liefern und man kann sich zudem noch anschauen, was im Code passiert, wenn man z.B. einen Button einfügt.


----------



## Andi_CH (14. Feb 2011)

frapo hat gesagt.:


> @Andi_CH
> 
> Spätestens beim Debuggen wird man sich freuen AWT von Swing unterscheiden zu können . Glaube nicht das es einem schlecht tut, dann festzustellen das man von beidem schonmal was gehört hat.
> 
> Zu Deiner Eingangsfrage: habe mit Assembler angefangen.



Wie oft übersetzt du Java-Programme in Bytecode und debuggst auf diesem Niveau?
Ich weiss es ist ein Schlagwort aber 4th generation lässt schon viel zu lange auf sich warten - es geht einfach nicht mehr vorwärts mit der Programmiertechnik ausser das gigabyteweise Libraries geschrieben werden. (Ja Swing ist eine davon  )

Aber wir werden OT - Sorry


----------



## frapo (14. Feb 2011)

Andi_CH hat gesagt.:


> Wie oft übersetzt du Java-Programme in Bytecode und debuggst auf diesem Niveau?



Mit Debuggen meinte ich nicht den Bytecode . Einfach wenn der obligatorische 'Taschenrechner' - den wohl gerade viele Anfänger mal als Einstieg bauen - nicht läuft wie er soll. Schwupps muss man in den Quelltext gehen und wundert sich, das man möglicherweise gar nicht weiß was ein Import oder ein Package ist oder das AWT und Swing nicht dasselbe sind.. von der eigentlichen Fehlereingrenzung mal gar nicht zu reden. 

Aber wie ich sagte, ist nur meine Meinung das man sich gerade am Anfang wirklich erstmal 'nur' mit Java auseinandersetzten sollte, GUI, EE etc kann ja dann noch kommen . 

@Sonecc
Html ist doch aber keine Programmiersprache, oder?


----------



## Sonecc (14. Feb 2011)

frapo hat gesagt.:


> @Sonecc
> Html ist doch aber keine Programmiersprache, oder?



Nööööö... Eine Beschreibungssprache (ist das nu richtig übersetzt? wayne^^) Was ich damit aber sagen wollte, war ja nur, dass ich es heutzutage verwenden kann, unter anderem dank der tools


----------



## frapo (14. Feb 2011)

Sonecc hat gesagt.:


> Nööööö... Eine Beschreibungssprache (ist das nu richtig übersetzt? wayne^^) Was ich damit aber sagen wollte, war ja nur, dass ich es heutzutage verwenden kann, unter anderem dank der tools



Schon recht so , drum auch mein zwinkern^^


----------



## redbulls (14. Feb 2011)

Nimm den Visual Editor für Eclipse. Der ist super


----------



## frapo (14. Feb 2011)

redbulls hat gesagt.:


> Nimm den Visual Editor für Eclipse. Der ist super



Nee, VEP ist wohl eher auf dem absteigenen Ast: http://www.java-forum.org/ides-tools/103653-vep-eclipse-helios-2.html.

Wenn es schon sein muss, dann wohl eher: Installing WindowBuilder Pro - Google Java Developer Tools - Google Code


----------



## .maik. (14. Feb 2011)

ich verwende im Unterricht das Programm BlueJ. Ist ja ganz sinnvoll für anfänger. hat auch dieses programmgenerator integriert.


----------



## Michael... (14. Feb 2011)

Ich habe da eine ganz persönliche Meinung zu GUI Editoren. Da ich aber keinen der GUI Editoren für Java kenne und benutze, nur soviel:
- Den generierten Code solcher Editoren, den ich bisher gesehen habe, lässt sich ganz schwer lesen (=> Probleme bei der Portierung auf andere IDEs GUI Editoren, Wartung)
- Was ist wenn man sich nicht mit den Standardkomponenten begnügen will? Können die GUI Editoren damit umgehen? Die Editoren die ich bisher kennen gelernt habe, mussten spätestens da komplett aufgeben oder hatten extreme Schwierigkeiten, so dass man den GUI Code manuell modifizieren musste (und spätestens dann war für mich der Zeitpunkt gekommen den automatisch generierten Code zu verwerfen)

Aber wie gesagt, ich habe Java GUIs nie wirklich mit Editoren entwickelt und vielleicht hat sich da in den letzten Jahren ja einiges getan.
Allerdings empfinde ich es jetzt auch nicht als großen Aufwand den GUI Code per Hand zu schreiben.


.maik. hat gesagt.:


> ich verwende im Unterricht das Programm BlueJ. Ist ja ganz sinnvoll für anfänger. hat auch dieses programmgenerator integriert.


Ist jetzt nicht böse gemeint, aber mit BlueJ lernt man vielleicht ein paar Grundlagen der Programmierung nicht aber unbedingt das Programmieren in Java ;-)


----------



## Andi_CH (15. Feb 2011)

frapo hat gesagt.:


> Aber wie ich sagte, ist nur meine Meinung das man sich gerade am Anfang wirklich erstmal 'nur' mit Java auseinandersetzten sollte


... eben genau das will ich ja möglicherweise auch, aber ich will trotztdem niht auf ein GUI verzichten und bin dann mit einem GUI das generiert wurde und 80% aller Fälle abdeckt mehr als zufrieden - um die Internas könnte ich mich später noch kümmern.

Warum wehrt ihr euch so dagegen? Nur weil es noch nicht viel taugt?

Vor 25 Jahren mussten wir noch den generierten Maschinencode disassembliert um Details zu verstehen - das macht heute keiner mehr, denn die Compiler sind extrem zuverlässig geworden. Wenn nur annähernd so viel in GUI Builder investiert würde, müsste sich heute auch niemand mehr um diese Details kümmern.

(Als Software-Entwickler sollte man sich endlich um die eigentliche Aufgabe (eben den Taschenrechner oder was auch immer) kümmern können und nicht um so Details wie ein GUI ;-) - Hab ich schon mal gesagt, dass ich gerne provokativ bin?  GUI ist für mich wirklich nur ein Mittel zum Zweck und ich ärgere mich jedes mal über den horrenden Aufwand den es bedeutet nur zwei Felder oder ein Kommando dazuzufügen - ist halt eben wie Assemblerprogrammierung)

Wir machen noch so lange weiter bis ein Admin OT - ruft


----------



## ARadauer (15. Feb 2011)

Ich bin Frapos Meinung: Installing WindowBuilder Pro - Google Java Developer Tools - Google Code

Und zur Diskussion: Gui Builder vs Hand codes... es ist ein Religionskrieg den keiner gewinnen kann..   jeder wie er will. .... im Java Bereich gibts halt gegenüber GUI Editor viele alte Vorurteile, die viele einfach grotten schlecht sind... WindowBuilder Pro ist aber ein super Tool!


----------



## frapo (15. Feb 2011)

ARadauer hat gesagt.:


> Und zur Diskussion: Gui Builder vs Hand codes... es ist ein Religionskrieg den keiner gewinnen kann..



Dem kann ich nur zustimmen! Jeder wie er meint. 

Ich hätte vielleicht auch dazu sagen sollen, das ich das meiste eh per Hand machen, sprich meine 'IDE' nennt sich emacs + dem add-on jdee . 

Meiner persönlichen Erfahrung nach ist es einfach wichtig die Basics zu verstehen, bevor man die nächste Klippe erklimmen möchte. 
Bestättigung dafür finde ich übrigens auch ständig im Forum: andauernd gibt es hier Fragen von Einsteigern, die zwar alle toll GUI zusammenklicken können, dann aber im Quelltext vor lauter Jxxxx-Objekten nicht sehen können, warum ihr Programm nicht läuft. Eine Hintergrundfarbe per Klick einstellen zu können, bedeutet nunmal nicht das man versteht wie eine Schleife funktioniert.

Aber wie so schön zusammegefasst: jeder wie er mag .


----------



## Andi_CH (15. Feb 2011)

Assembler vs Hochsprache war auch mal ein Religionskrieg den niemand meinte gewinnen zu können!
Java wurde verdammt als riesig, langsam, instabil und und und ;-)

Aber so von wegen WindowBuilderPro - installieren geht wunderbar aber dann? Schon nett was das Help für einen Screen zeigt nur zeigt Eclipse den nicht an - tja, muss erst mal was produktives tun.


----------



## schalentier (15. Feb 2011)

IntelliJ IDEA :: GUI Designer - quick and easy creation and maintenance of both complex and simple component layouts

Des funktioniert uebrigens auch hervorragend. Ist auch in der kostenlosen Community Version von IntelliJ drin. Besonders schick finde ich an diesem Ding, dass kein Javacode generiert wird, sondern nur ne Klasse mit den relevanten Komponenten (Textfelder, Buttons, etc).


----------



## chalkbag (15. Feb 2011)

Andi_CH hat gesagt.:


> Aber so von wegen WindowBuilderPro - installieren geht wunderbar aber dann? Schon nett was das Help für einen Screen zeigt nur zeigt Eclipse den nicht an - tja, muss erst mal was produktives tun.



Versuch mal, File->New->Other->Window Builder->...


----------



## Tomate_Salat (15. Feb 2011)

.maik. hat gesagt.:


> ich verwende im Unterricht das Programm BlueJ. Ist ja ganz sinnvoll für anfänger.



Halte ich für ein Gerücht. BlueJ ist alles andere als sinnvoll. Anfänger bekommen ein falsches Bild von Java.

Ansonsten: Ich bin auch der Meinung: als anfänger sollte man nicht mit GUI beginnen und wenn man damit beginnt, erst einmal von Hand. Der Code von z.B. Netbeans ist schwer zu lesen und für einen Anfänger wohl auch eher abschreckend. Ich bezweifel, dass ein Anfänger davon etwas lernt :noe:. Der WBPro für Eclipse generiert wesentlich schöneren Code und ist ein mächtiges Tool, trotzdem sollte man wissen, wie z.B. LayoutManager arbeiten.


----------



## ARadauer (15. Feb 2011)

Tomate_Salat hat gesagt.:


> Ansonsten: Ich bin auch der Meinung: als anfänger sollte man nicht mit GUI beginnen und wenn man damit beginnt, erst einmal von Hand. Der Code von z.B. Netbeans ist schwer zu lesen und für einen Anfänger wohl auch eher abschreckend. Ich bezweifel, dass ein Anfänger davon etwas lernt :noe:. Der WBPro für Eclipse generiert wesentlich schöneren Code und ist ein mächtiges Tool, trotzdem sollte man wissen, wie z.B. LayoutManager arbeiten.



Stimmt bin grundsätzlich deiner Meinung aber, der "rasche und sichtbare Erfolg" (aktuelles Java Magazin) ist sicher eine bessere Motivation als sich mit dem sch*** Gridbag Layout rumzuschlagen ...
Ich finde eine kleine GUI zusammen klicken schadet am Anfang nicht, wenn man sich dann nachher noch mit den Details beschäftigt...


----------



## .maik. (15. Feb 2011)

Michael... hat gesagt.:


> Ist jetzt nicht böse gemeint, aber mit BlueJ lernt man vielleicht ein paar Grundlagen der Programmierung nicht aber unbedingt das Programmieren in Java ;-)



Ich weiß. aber für den einstieg echt nicht schlecht. ich meine, wenn man noch nie irgendwas mit programmiersprachen zu tun hatte, ist das echt sinnvoll. später wird man es dann nicht mehr verwenden.


----------



## Tomate_Salat (15. Feb 2011)

.maik. hat gesagt.:


> Ich weiß. aber für den einstieg echt nicht schlecht.



Hier im Forum finden sich immer wieder BlueJ opfer, welche plötzlich mit der Realität konfrontiert wurden. BlueJ vermittelt ein falsches Bild von Java, was dieses Forum hier mit sehr vielen Threads beweist.


----------

