Grafische Oberfläche zusammenklicken

p4man

Grünschnabel
Hi,
ich bin eigendlich c#-ler und bin visual studio gewohnt.

Nun muss ich was in java tippsen und brauche dafür eine grafische oberfläche.

Gibts es eine möglichkeit, bei java iwie auch wie bei visual studio die oberfläche zu gestallten?

wie läuft es bei java mit den ganzen gestaltungszeug?

danke im voraus
 

Der Wolf

Erfahrenes Mitglied
Hallo,

du kannst dir zum Beispiel Netbeans für Java holen. Da ist auch eine GUI-Gestaltungs-Plugin mit bei. Viel Erfahrung mit GUI Programmierung habe ich allerdings nicht. Ein wenig in Java habe ich gemacht und WinForms, WPF und co wollte ich mir bei Gelegenheit mal anschauen.

Gruß,
Wolf
 

socke77

Mitglied
Na, die Finger davon zu lassen würde ich nicht raten, gerade für kleinere Tools und Projekte kann das doch recht hilfreich sein und erspart eine Menge Arbeit.

Problematisch wird es, wenn die Software größer wird, viele Fenster, mehrere Entwickler daran arbeiten und es auch gewartet werden muss. Da kehrt sich das Verhältnis meinstens um.
 

Akeshihiro

Erfahrenes Mitglied
Das Verhältnis ist schon bei einem HelloWorld nicht gegeben. Sobald man so einen GUI-Editor verwendet, ist man auf diesen einen angewiesen. Das ist nicht, wie bei WPF, wo man nur ein bisschen XML parsen muss und alles funktioniert gleich. Sobald man einen anderen GUI-Editor nehmen würde, klappt der ganze Spaß schon nicht mehr, weil das Ding nichts erkennt, da die Code-Struktur unbekannt ist. Und für die anderen Entwickler ist es auch einfach mit dem Code zu arbeiten, weil man nicht auf eine bestimmte IDE angewiesen ist, so kann jeder arbeiten, wie er es gewohnt ist.

Ersparen tun die nebenbei gesagt auch nix, eher im Gegenteil, sie erzeugen Arbeit. Den Code hat man schneller sauber runtergetippt als zusammengeklickt und anschließend angepasst. Abgesehen davon wird man auf diese Weise gezwungen sich Gedanken über das Layout zu machen und Skizzen anzufertigen. Genau das ist das, was bei einem GUI-Editor in 99% der Fälle nicht gemacht wird, weswegen es dann mit einem Ausprobieren und immer wiederkehrenden Anpassen endet, was noch mehr Aufwand bedeutet.
 

socke77

Mitglied
Wie gesagt, das seh ich anders. Wozu einen anderen Editor nutzen wollen wenn wir ein kleines Tool schreiben möchte mit 1-2 Masken?
Alleine schon eine GUI mit sagen wir 10-20 Elementen auszustatten und ein wenig nett aussehen zu lassen, muss man im Code schon diverse Male kompilieren bis es passt. Da mag der eine etwas mehr Übung haben als der andere, ändert nichts daran, dass ich per Hand die Pixel eintragen muss. Das geht definitiv schneller mit einem Editor als von Hand.
Keine Frage, wenn ich die GUI später generiere bzw. abstrahiere, wiederverwende etc. dann nützt der beste Editor nichts mehr. Aber genau darauf wollte ich eben nicht abzielen.
Ich bin selbst kein GUI-Editor Fan, aber wie bereits erwähnt, ich würde die Editoren nicht per se verteufeln. Btw. wo du gerade von Skizzen sprichst, gerade dafür ist der Editor perfekt! Prototyping z.B...
 

Akeshihiro

Erfahrenes Mitglied
Sorry, aber ich verstehe deine Ansicht nicht wirklich. Was willst du wo eintragen und warum mehrmals komipilieren, bis es passt? Das sollen die LayoutManager machen, dafür sind die da. Ich kann eine GUI sofort auf anhieb zusammenprogrammieren und sie läuft gleich beim ersten Mal wie sie soll. Dafür ja die Skizzen. Und die werden erst in einem Team besprochen und diskutiert, bevor auch nur eine einzige Zeile getippt wird. Erst wenn die Maske abgenommen ist, wird sie entwickelt, nicht vorher. Und LayoutManager wie MigLayout setzen die GUI dann 1:1 um ohne viel Code. Und genau darum ist das schneller und effektiver als mit einem zusammengeklicken Irgendwas.

Wer GUI-Editoren benutzen will, soll das tun. Aber ich empfehle das nicht. Und Wissen über die Komponenten muss man sich so oder so aneignen, ob man die GUI nun händisch oder per Klick implementiert, sonst kann man damit nicht richtig arbeiten und es kommt nur Schrott dabei rum und da spreche ich aus Erfahrung. Darum kann ich diesen VisualStudio-Hype auch nicht leiden, weil jeder, der damit programmieren lernt, gar nicht weiß, was er tut und mit solchen Leuten muss man dann nur rumärgern und denen erstmal die Grundlagen beibringen.
 
Zuletzt bearbeitet:

sheel

I love Asm
Da mag der eine etwas mehr Übung haben als der andere, ändert nichts daran, dass ich per Hand die Pixel eintragen muss. Das geht definitiv schneller mit einem Editor als von Hand.
Wie Akeshihiro schon sagte, das ist bei Swing&Co in Java nicht nötig.

Es gibt verschiedene Layoutmanager, die die Größe und Position der Controls verwalten.
Je nach Arbeitsweise des LMs sucht man sich einen aus, der für das geplante Fenster am besten
passt, erstellt eine Instanz davon und weist sie dem Fenster/Panel zu.
Dann Buttons, Textfelder und alles einfach reinadden, ohne irgendwelche Pixelangaben.
(Hier einige Einfache skizziert: http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html
Man kann aber auch selbst beliebig komplexe machen bzw. von wem Anderen bekommen)

Gerade bei kleineren Fenstern ist diese Automatik oft ausreichend.
Und wenns irgendwann nicht so gemacht wird,
wie man es gerne hätte, kann man noch immer Pixel angeben.

Darum kann ich diesen VisualStudio-Hype auch nicht leiden, weil jeder, der damit programmieren lernt, gar nicht weiß, was er tut
Diese Verallgemeinerung :suspekt: ... Sonst volle Zustimmung

(ranz anfang)
Wobei sich immer wieder beobachten lässt, dass die Leute, die durch GUI-Editoren nicht
wissen, was sie tun, auch im restlichen Programmcode nicht wissen, was sie tun...
Irgendwann bringen sie es schon zur Lauffähigkeit am eigenen Computer,
aber ineffektiv und fehlerträchtig ^10

Man stelle sich nur vor, für das:
Java:
class Blub {
    protected int i;

    public void setI(int i) {
        this.i = i;
    }
}
mit mehrfacher Reflectionverwendung zu arbeiten :(
Und "mehrfach" im Sinn von mehrere Aufgaben für das Reflectionsystem,
nicht nur mehrere beteiligte Klassen.
(ranz ende :))
 

melmager

Erfahrenes Mitglied
Ich bin jemand der gerne mit der GUI arbeitet
ich will ein schnelles optisches ergebnis
ich habe keine lust mich neben der einarbeitung in swing mich auch noch mit layouts rumzuärgern

aber
ich bin Anfängerin, ich kenne immer noch nicht alles was Java kann
ich arbeite allein und es soll nicht productiv sein sondern nur Lerneffect
und ich Programmiere on the Fly - sprich es gibt auch jeden menge änderungen an der GUI
während des projekts weil es im laufe der programmierung dazu kommt: - hey die function währe auch noch cool :)

und wo ich schon dabei bin - ich tue mich immer noch mit OOP Denken schwer :-(

ich nehme noch die negativen auswirkungen von NetBeans grade bei GUI in kauf - smile
 
Zuletzt bearbeitet: