GUI über Eclipse oder NetBeans

IchMagJava

Mitglied
Hallo Ihr Lieben,

Ein JavaNoob sucht Rat. Ich soll ein kleines Programm mit grafischen Elementen für die Uni schreiben. Nun weiß ich nicht, ob man GUI's besser in eclipse oder in NetBeans erstellen soll. Einerseits ist es in NetBeans viel schneller, einfacher und ich vermute in Unternehmen werden deklarative Oberflächen ebenfalls bevorzugt. Aber der Prof könnte NetBeans evtl. mit dem Argument - für Lehrzwecke ungeignet - beanstanden?!

Was meint Ihr?
 

mrBrown

Super-Moderator
Mitarbeiter
Um welches UI-Framework gehts denn?

Grundsätzlich geht das mit allen drei großen IDEs gleich gut, an Unis hab ich auch alle drei schon erlebt.
 

White_Fox

Top Contributor
Also, MEIN Prof hat uns damals mit Netbeans arbeiten lassen (und uns auch am Rande den GUI-Builder gezeigt). Andere Profs an meiner Hochschule haben die Studenten sich erstmal mit dem Texteditor abmühen lassen.
 

White_Fox

Top Contributor

Klick dir mal eine halbwegs größere GUI zusammen und versuche mal, den Code zu überblicken. Der Code funktioniert, aber wehe man faß den an der falschen Stelle an oder will den gar umstrukturieren. Ich persönlich finde das Resultat gräßlich.

Ich dachte, so würden es die Profis machen.
Profis wissen in der Regel, was sie tun. Die Codegeneratoren helfen einem dabei eher wenig.

Ich persönlich nutze sowas eher, um Bibliotheken kennen zu lernen. Zu sehen wie es aufgebaut wird, was man für die Initialisierung tun muß, ... solcher Kleinkram halt. Aber dann wird das Programm wieder selbstgestrickt.

Zugegeben, um mal schnell was zusammenzuraffeln ist ein Codegenerator ok. Ich zumindest würde die Teile auch nicht verteufeln.
 
X

Xyz1

Gast
Demnach ist ja jeder Kfz-Mechaniker kein Experte mehr, wenn er sich selber ein Auto käuft, anstatt dieses selbst herzustellen?
 

White_Fox

Top Contributor
Warst du schonmal in einer Werkstatt? Aus meiner Erfahrung heraus weiß ich, daß es richtig gute Kfz-Mechaniker gibt. Und das längst nicht jeder Kfz-Mechaniker ein Profi ist.

Aber was hat das damit zu tun, ich sehe den Zusammenhang nicht.
 

mrBrown

Super-Moderator
Mitarbeiter
Das Problem dabei ist weniger die Code-Generierung an sich, sondern wie das passiert und wie das verwendet wird.

Die üblichen GUI-Builder generieren halt direkt Java-Code in den Produktiv-Klassen, der danach meist noch angefasst wird. Damit hat man dann alle Nachteile, der Code wird höllisch unwartbar (weil riesiger Blob) und nicht mehr per Hand zu managen, ist aber auch nicht vernünftig automatisiert editierbar und damit nicht weiter-entwickelbar.


Wenn man Code vernünftig generiert, also das Was irgendwo deklarativ stehen hat (zB über Annotationen oder in UI-Fall als XML oä), der generierte Code nicht angefasst wird und neu generierbar bleibt (ua. nicht eingecheckt wird und regelmäßig neu generiert wird, zB jeden Build) und das ganze dann in selbst geschriebenem Code über eine öffentliche Schnittstelle benutzt wird, spricht nicht viel gegens Generieren.
 
K

kneitzel

Gast
Ich persönlich nutze sowas eher, um Bibliotheken kennen zu lernen. Zu sehen wie es aufgebaut wird, was man für die Initialisierung tun muß, ... solcher Kleinkram halt. Aber dann wird das Programm wieder selbstgestrickt.

Also das wäre mir zu viel Arbeit. Ich nutze dafür einfach immer Unit Tests. Dazu gibt es dann entweder eine eigene Unit Test Klasse, die ich am Ende wieder aus dem Repository schmeiße oder ich missbrauche eine Test Klasse, in der das am Ende ehh gehören könnte, sprich: bei den Tests der Komponente, in der ich das zuerst brauche, was ich mir da erarbeiten möchte ....

Extra eine UI, auch wenn zusammen geklickt, scheint mir da zu viel Arbeit und auch bei der Nutzung zu umständlich. (Aber ich möchte nicht ausschließen, dass es eine super Arbeitsweise ist, wenn man das so gewohnt ist! Also bitte nicht als Kritik an der Arbeitsweise sehen sondern nur als meine Sichtweise / Beschreibung meiner Arbeitsweise! In der Physik LK Prüfung habe ich schnell per DGL eine Formel hergeleitet, was mein Lehrer aus allen Wolken hat fallen lassen. "Das sei doch nicht gefordert gewesen." und hatte sich dann Sorgen gemacht, dass da etwas falsch verstanden wurde. Aber ich bin halt gegen auswendig lernen von Dingen, die man sich schnell herleiten kann! Das waren 5 Minuten Schreibarbeit bei einer LK Klausur, die über mehrere Stunden ging.... Also um es kurz noch einmal auf einen Nenner zu bringen: Was Dein richtiger Weg ist, kannst nur Du sagen und das ist mir bewusst und daher soll das keine Kritik sein!)
 

mrBrown

Super-Moderator
Mitarbeiter
Also wenn ich das richtig verstanden habe, dann eignen sich GUI-Builder insbesondere für kleine Programme, die nicht mit Updates versorgt werden müssen.
Jein.
Fürs reine Prototyping ist das nutzbar, man muss halt damit leben, der Code auch einfach wieder wegzuschmeißen und ist mit dem generierten auch recht eingeschränkt. Die Wartbarkeit bezieht sich nicket nur auf Updates, sondern die Weiterentwicklung im Laufe der Entwicklung - Morgens probierst du es mit zwei Buttons, Abends dann drei...


Grad bei kleinen Programmen ist man meist sowieso ohne GUI-Builder schneller, einen wirklichen Vorteil hat der auch da nicht.

(Ausgenommen ist da immer der JavaFx-SceneBuilder, da funktioniert das von Grund auf anders)
 

IchMagJava

Mitglied
Ich verstehe.
JavaFx-SceneBuilder wäre meine nächste Frage. JavaFx ist ja Oracle's neuste Bibliothek und SceneBuilder ist ja ähnlich wie NetBeans wo man Sachen zusammenklicken kann. Ist das also womit heutzutage in Javabereich vorwiegend gearbeitet wird, sodass man sich das unbedingt aneignen soll oder gibt was anderes?
 

mihe7

Top Contributor
Gefühlsmäßig würde ich sagen, dass Java auf dem Desktop allgemein nicht mehr so stark verbreitet ist. Früher habe ich öfter Swing-Anwendungen geschrieben, heute ist fast nur noch Web angesagt, da man mit dem Browser einen universellen Client gefunden hat.

JavaFX gilt offiziell als Nachfolger von Swing. Der Ansatz ist schon deswegen anders, weil mit FXML die Möglichkeit einer deklarativen Beschreibung der Benutzeroberfläche besteht. Der Scene Builder ist in erster Linie einfach ein graphischer FXML-Editor.
 

IchMagJava

Mitglied
Was heißt das eigentlich?
Man unterscheidet zwischen programmierten und deklarativen Oberflächen:

Programmierte Oberflächen sind solche wo man alle Komponenten mit new erzeugt und mit Layoutmanager anordnet. Deklarative Oberflächen sind in einer externen Ressourcendatei beschrieben. Das Format kann z.B. XML sein. Also wenn man mit Scene Builder arbeitet, wird das Layout in einer externen Datei in XML gespeichert und am Ende eingebunden.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Programm läuft in Eclipse, aber nicht über Konsole Java Basics - Anfänger-Themen 10
B ICO Library über Eclipse einbinden Java Basics - Anfänger-Themen 2
M Verbindung zu einem Server über Eclipse Java Basics - Anfänger-Themen 6
F Javadoc Zugriffsprobleme über Eclipse Java Basics - Anfänger-Themen 2
richis-fragen GlassPane über JScrollPane legen Java Basics - Anfänger-Themen 6
A Server - Client Nachrichtenaustausch über Eventbus Java Basics - Anfänger-Themen 12
P Neue Java v8 JRE Version nicht über alte drüber installierbar: Wie sonst? Java Basics - Anfänger-Themen 7
D Downloadfortschritt von Datei über Google Drive API v3 Java Basics - Anfänger-Themen 10
B großzügiges Pixelraster über Bildschirm legen Java Basics - Anfänger-Themen 7
ravenz Schleife mit for über String Array „zahlen“und prüfen ob Wert „a“ oder „b“ oder „c“ entspricht (mittels || ) Java Basics - Anfänger-Themen 4
L Beim Java Programmstart, mehrere Parameter über die Kommandozeile übergeben Java Basics - Anfänger-Themen 9
sserio Iterierung über ein zweidimensionales Array Java Basics - Anfänger-Themen 16
H Eine Methode über Actionlistener beenden Java Basics - Anfänger-Themen 8
S Java über SSH Java Basics - Anfänger-Themen 13
X Wie erreiche ich, dass ein Robot weitere Attribute hat, die nicht materialisiert sind, sondern nur über get/ set-Methoden simuliert sind? Java Basics - Anfänger-Themen 1
M Wie können Klassen nicht-materialisierte Attribute haben, die nur über get/ set-Mehoden simuliert sind? Java Basics - Anfänger-Themen 6
D Best Practice Ausgabe über direkte Ausgabe oder try-catch? Java Basics - Anfänger-Themen 13
R Eigenschaft über Parameter auslesen und ändern Java Basics - Anfänger-Themen 15
P Datei einlesen, nach Begriff filtern und in Datei ausgeben. Problem Standardausgabe über Konsole Java Basics - Anfänger-Themen 19
W Unterschiede bei Zugriff auf Objekt und Klassenvariablen über einen Getter? Java Basics - Anfänger-Themen 2
W char über die Konsole? Java Basics - Anfänger-Themen 7
EchtKeineAhnungManchmal Hallo :) ich bekomme es nicht hin eine Fehlermeldung auszugeben über die GUI Java Basics - Anfänger-Themen 3
S Array über ein Ausgabemethode in main ausgeben Java Basics - Anfänger-Themen 31
C Potenzberechnung über switch case. Taschenrechner mit Eingabe über einen grafischen Dialog Java Basics - Anfänger-Themen 22
J Wert zurückgeben über get Methode Java Basics - Anfänger-Themen 8
J Eintrag Combobox über einen String auswählen Java Basics - Anfänger-Themen 3
A Array Ansprache einer Zelle über Punktnotation? Java Basics - Anfänger-Themen 3
O Java über cmd benutzen ? Java Basics - Anfänger-Themen 5
J Variablenzugriff über string Java Basics - Anfänger-Themen 18
W Objekte über Scanner Input; ToString Probleme... Java Basics - Anfänger-Themen 4
H Methode über String Wert aufrufen Java Basics - Anfänger-Themen 8
M Java Kompilieren über Package grenzen hinaus Java Basics - Anfänger-Themen 4
M Arrays mit mehreren Werten über JOptionPane initialisieren Java Basics - Anfänger-Themen 12
Tino1993 Ellipse über draw Funktion ohne spur wandern lassen Java Basics - Anfänger-Themen 6
M Mehrere Datenbank zugriffe über tomee.xml regeln? Java Basics - Anfänger-Themen 1
N Input/Output Eine Frage über system.out.println. Java Basics - Anfänger-Themen 10
J Array über Getter erlangen Java Basics - Anfänger-Themen 34
S While-Schleife geht in Endlosschleife über, warum? Java Basics - Anfänger-Themen 6
B OOP-Anfänge über CMD + Editor Java Basics - Anfänger-Themen 30
G Variablen Array Länge über den Konstruktor definieren Java Basics - Anfänger-Themen 4
L Addition von Arrays über die Parameterliste Java Basics - Anfänger-Themen 11
C Datei über relative Pfade einlesen Java Basics - Anfänger-Themen 6
1 Erste Schritte Was denkt ihr über eines meiner ersten Javaprogramme? Java Basics - Anfänger-Themen 2
S Allgemeine Frage über Generics und Vererbungen Java Basics - Anfänger-Themen 5
J Button über Pfeiltasten bewegen Java Basics - Anfänger-Themen 8
E Objekt durch Benutzer über Konsole erzeugen - Java Java Basics - Anfänger-Themen 3
N Eingabe Kommazahlen über Scanner Java Basics - Anfänger-Themen 2
T DoWhile Schleife über mehrere Mothoden Java Basics - Anfänger-Themen 5
C Collections List über Interface zugreifen Java Basics - Anfänger-Themen 32
J Gefilterten Stream über die Konsole ausgeben Java Basics - Anfänger-Themen 1
S Variablen Klassenvariable über Objekt aufrufen Java Basics - Anfänger-Themen 16
S Bilder über Socket Senden Java Basics - Anfänger-Themen 1
K Textdatei auslesen und über Mqtt schicken Java Basics - Anfänger-Themen 4
L Iterieren über eine CSV Datei Java Basics - Anfänger-Themen 7
S Klassenaufruf über JFrame Button Java Basics - Anfänger-Themen 3
Java The Hutt SetWerte über verschiedene Klassen Java Basics - Anfänger-Themen 16
L Zugriff auf Attribute eins Objekts über ActionListener Java Basics - Anfänger-Themen 4
O Methode über Leerzeichen Java Basics - Anfänger-Themen 13
I OOP Objektnamen über die Konsole richtig einlesen Java Basics - Anfänger-Themen 9
A Variablen Variablenwert über Konstruktor ändern Java Basics - Anfänger-Themen 3
J MySQL Datumsabfrage über ResultSet in Java-Servlet Java Basics - Anfänger-Themen 4
CptK Interface Bilder über Bildschirm bewegen, bis der Abstand zum vorherigen zu groß wird Java Basics - Anfänger-Themen 13
dapzoo Class File Version zu niedrig? Ausführen über Eingabeaufforderung nicht möglich Java Basics - Anfänger-Themen 14
J Punkt auf,über,unter oder zwischen 2 Geraden Java Basics - Anfänger-Themen 14
CptK Interface Bild über Methode ändern funktioniert nicht Java Basics - Anfänger-Themen 4
R Keine Verbindung zu MySql über Netbeans Java Basics - Anfänger-Themen 15
E Best Practice Jar-file mit zwei Klassen und externer Bibliothek über Konsole erzeugen Java Basics - Anfänger-Themen 13
J Aufruf einer Methode über einen String Java Basics - Anfänger-Themen 11
G Arraynamen über eine Schleife ansprechen Java Basics - Anfänger-Themen 4
S Bild über JButton legen Java Basics - Anfänger-Themen 3
temi Druckeransteuerung über ESC-Sequenz Java Basics - Anfänger-Themen 21
M Methodenaufruf über SQL UPDATE Java Basics - Anfänger-Themen 8
B Könnte jemand über dieses jurze Javaprogramm schauen? Irgendwas funktioniert mit der z-Varible nicht Java Basics - Anfänger-Themen 2
M Java Programm über Batch-Datei ausführen Java Basics - Anfänger-Themen 1
E Wie Passwort-Eingabe (ohne Echo!) über Konsole ? Java Basics - Anfänger-Themen 4
C Erste Schritte Fehler beim *.class Aufruf über cmd.exe Java Basics - Anfänger-Themen 9
R Fragen über den Konstruktor Java Basics - Anfänger-Themen 0
X Minimax-Algorithmus über alle Kanten möglich? - Kanten darstellen Java Basics - Anfänger-Themen 1
P Threads Prozess kann nicht über die GUI gestartet werden Java Basics - Anfänger-Themen 8
T CMD über Java-Programm aufrufen Java Basics - Anfänger-Themen 2
X Finde die Files über FTP nicht Java Basics - Anfänger-Themen 4
J Methode über Scanner aufrufen Java Basics - Anfänger-Themen 15
P Programm kann über CMD nicht ausgeführt werden Java Basics - Anfänger-Themen 2
E Frage über Speichern und Ausgabe Java Basics - Anfänger-Themen 7
J Verschieden Fragen über Java Programmierung Java Basics - Anfänger-Themen 3
X Betriebssytem interne Consolen Commands über Java starten Java Basics - Anfänger-Themen 2
J ArrayList über verschiedene Klassen verwenden Java Basics - Anfänger-Themen 7
A .jar über Webbrowser aufrufen Java Basics - Anfänger-Themen 2
D Ausgabe über JLabel Java Basics - Anfänger-Themen 12
L Erste Schritte Arrays über eine for Schleife ansprechen. Java Basics - Anfänger-Themen 6
MiMa Datentyp Short Wert zuweisen über Methode Java Basics - Anfänger-Themen 2
K Objekt soll Anwendung über Änderungen informieren Java Basics - Anfänger-Themen 8
Detox Class Datei erzeugen nicht möglich über cmd Java Basics - Anfänger-Themen 1
F Gewichteter Mittelwert über eine Zeitperiode Java Basics - Anfänger-Themen 3
B Schleife über einen Container Java Basics - Anfänger-Themen 7
Henri Paare Frage über Java Programmierung Java Basics - Anfänger-Themen 10
T jar von stick aus über jre auf stick starten Java Basics - Anfänger-Themen 6
L Iterieren über ArrayList Java Basics - Anfänger-Themen 1
D Java doppelte Zahlen auch über 10 in einem String entfernen Java Basics - Anfänger-Themen 2
M Panel erstellen, welches ein Control erhält. Ausgabe soll über einen Stream erfolgen. Java Basics - Anfänger-Themen 0

Ähnliche Java Themen

Neue Themen


Oben