# Wie kann ich GUI in Intellijidea manuell verwenden?



## s3rh47 (10. Okt 2021)

Hallo Commutiy,

ich bin neu hier. Ich freue erstmal, dass wir so ein schönes Forum haben und noch hier geholfen werden.

Ich habe jetzt eine Frage ( zwar viele ).

Wir lernen JAVA in der Schule mit Intellij Idea. Die IDE ist super , aber was mich eigentlich sehr stört , das Swing GUI . Man kann die Objekte ( Button , TextField usw.) nicht frei platzieren, wie bei NetBeans oder Eclipse. Es geht alles automatisch.

Gibt es hier wirklich einen Weg , damit ich bei Intellij  Idea  die Objekte frei platzieren kann.

Außerdem viele Leute empfehlen JAVAFX für das  oberflächlische Programming. Ist Swing oder JavaFX gut?


----------



## Oneixee5 (11. Okt 2021)

Steuerelemente werden per LayotManager "platziert": https://www.java-tutorial.org/layout-manager.html. Dabei macht es keinen Unterschied welches UI-System verwendet wird. Das Vorgehen ist überall irgendwie, mehr oder weniger ähnlich. Steuerelemente absolute zu positionieren ist mit dem entsprechenden LayotManager auch möglich aber nicht zu empfehlen. Du musst bedenken, dass es 1000-e Arten und Auflösungen bei Bildschirmen gibt. Die Darstellung sollte aber auf jedem davon korrekt sein.


----------



## kneitzel (11. Okt 2021)

Bezüglich der Platzierung von Elementen hat @Oneixee5 schon eine gute Antwort gegeben.

Bezüglich "Außerdem viele Leute empfehlen JAVAFX für das oberflächlische Programming. Ist Swing oder JavaFX gut?" würde ich aber noch meinen Senf dazu geben:

Hier ist die Frage, welche Kriterien man anwenden möchte. Beide Technologien haben ihre Berechtigung.

Swing ist deutlich einfacher gehalten. Dementsprechend wenig Möglichkeiten sind gegeben (Verglichen z.B. mit JavaFX).
JavaFX bietet deutlich mehr. Zusammen mit Erweiterungen wie mvvmFX hat man eigentlich Alles, was wirklich interessant ist.
Wenn man es noch Komplexer haben möchte, dann könnte man noch Richtung Eclipse RCP gehen.

Mehr Möglichkeiten (= komplexer) könnte man als "besser" ansehen. Aber das ist nicht ganz richtig:
- Einarbeitung ist notwendig. Also gerade für einen Anfänger ist komplexer eher schlechter.
- Desktop Applikation aber auch speziell Desktop Applikation mit Java sind etwas, das man evtl. gerne als "totes Pferd" bezeichnen möchte. Damit stellt sich die Frage, in wie weit die Einarbeitung in eine komplexe Technologie sich überhaupt rentiert.

Daraus kann man ggf. zu gewissen Gedanken kommen, die ich einfach einmal in den Raum werfe:

Wenn die Anforderung vorhanden ist, sich in eine Technologie einzuarbeiten, dann ist das so. Eclipse RCP wird interessant z.B, wenn man auch Plugins zu Eclipse entwickeln will. 

Wenn die Anforderung ein kleines Programm ist, dann lohnt es sich, bei Swing zu bleiben. Geringe Einarbeitung und ein ggf. weniger strukturierter Code fällt einem (sehr wahrscheinlich) nicht auf die Füße.

Wenn die Anforderung recht komplex wird, dann ist JavaFX zu bevorzugen, da die Einarbeitung zwar Aufwändig, aber die Möglichkeiten, die man bekommt, helfen ungemein, den Code sehr sauber zu strukturieren und aufzuteilen ohne dass dadurch sehr viel selbst geschrieben werden muss.

Bei ganz komplexen Anforderungen ist man dann sogar beim Eclipse RCP - Da gibt es sogar eine große Menge an "Referenz-Produkten", die zeigen, dass man damit auch große Projekte sehr gut umsetzen kann (Halt alles rund um Eclipse  )


----------

