Java - GUI

mf3108

Cadet 4th Year
Registriert
Dez. 2007
Beiträge
109
Hallo!

Wir müssen in diesem Schulhalbjahr ein Projekt in IT machen, entweder einen Microkontroller programmieren oder in Java/GUI etwas programmieren.

In Java habe ich auch schon etwas, was ich progammiert habe und meinem Lehrer zufolge sehr gut als Projekt nehmen könnte... nur das, was ich programmiert habe, ist ohne GUI.

Jetzt stellt sich mir halt die Frage, ob ich jetzt mein schon progammiertes Projekt mit ner Grafischen Oberfläche versehen soll....

Ich kenn mich da noch gar nicht aus... haben bisher nur OOP gemacht.
Ist das sehr schwierig mit GUI eine grafische Oberfläche zu erstellen?

Ansonsten würde ich eben das mit den Mikrokontrollern machen...

LG Matze
 
Schwer ist es nicht - aber wenn man so etwas noch nie gemacht hat, ist es halt etwas gewöhnungsbedürftig ;)

Solltest du die GUI machen, wirst du hier schnelle und kompetente Antworten auf deine Fragen finden ;)
Das hier hilft auch immer weiter...
 
Erstmal: Eine GUI ist eine grafische Oberfläche (Graphical User Interface).

Eine GUI mit Java zu implementieren ist an sich nicht sonderlich schwer. Es gibt dort z.B. das Swing Framework. Ist in Java gleich integriert.

Worauf du achten musst, ist folgendes: Swing trennt strikt zwischen Daten und Darstellung. Wahrscheinlich musst du deinen vorhandenen Code entsprechend umgestalten, so dass die Daten-Verarbeitung in anderen Klassen / Methoden liegt, als die Daten-Darstellung, sei es jetzt Darstellung in einer GUI oder auf der Konsole.
 
soweit schon mal vielen dank =)

aber es wäre theoretisch schon möglich, dass ich eine grafische Oberfläche erzeuge, mit Buttons etc. und ich dann bei Betätigung eines bestimmten Buttons eine bestimmte Methode aufrufen kann, die dann eben in nem Textfeld oder nem Display das jeweilige anzeigt?

um genau zu sein... ich habe eine Art "Bank System" mit einer Zentrale, die ein Array mit verschiedenen Filialen hat, und die Filialen haben wieder zwei Arrays mit Kunden und Konten.

Ich habe ein Menü, in dem man Informationen abrufen kann, Geld abheben/einzahlen kann usw :D^^

Wäre das möglich, dies mit einer GUI Oberfläche zu versehen?

LG Matze
 
Ganz einfache Antwort: Ja.

Genau dafür ist ja eine GUI gedacht. Jedes (sichtbare) Fenster in Windows ist eine GUI.
 
Zuletzt bearbeitet:
Als Tipp: mit NetBeans geht sowas auch recht einfach ... oder mit VisualEditor für Eclipse; da kannst du dir deine Oberfläche wie in Visual Basic, Delphi usw zusammenklicken und auch schon vieles per Klick einstellen (von Hand braucht sowas doch einiges an Einarbeitungszeit), z.B. werden die Listener schon automatisch gesetzt ... dann musst du eigentlich nur noch den Inhalt auf die einzelnen Textfelder z.B. bringen und ggf. wieder auslesen
 
Auch wenn der Tipp gut gemeint ist, finde ich ihn nicht so gut. Man sollte am Anfang erst mal per Hand eine GUI erstellen, damit man mit den Details, Besonderheiten und Strukturen vertraut wird.
Später kann man dann auch sowas wie Netbeans nutzen, wenn mans gelernt hat.
 
samotyr schrieb:
Später kann man dann auch sowas wie Netbeans nutzen, wenn mans gelernt hat.

Da hast du eigentlich recht, ich bin aber mal davon ausgegangen, dass es für das Projekt so am einfachsten ist. Zum Erlernen würde ich eher viele kleine und unterschiedliche Programme entwickeln. Alles auf einmal finde ich eher weniger gut, da man sich da unter Umständen einen unsauberen Stil aneignet.
Aber im Prinzip stimme ich dir natürlich zu ;-)
 
Vor allem wird dich der produzierte Code bloß verwirren... Ein simples Fenster lässt sich wirklich -sehr- einfach mit Java realisieren. Und alles was über so ein simples Fenster hinaus geht -> für sowas wird eh kein "zusammenklick-editor" genommen ;)
 
Für den ersten Anfang ist ein visuelles Tool eigentlich sehr gut geeignet. Da kann man sich ein bischen was zusammenklicken und dann im Code gucken, wie der Editor es zusammengesetzt hat.
 
hey... vielen Dank für eure Antworten...

ich habe mir heute mittag mal die hilfe von galileocomputing angeschaut, die ist wirklich sehr gut...

für das projekt habe ich das ganze halbjahr zeit... also von dem her werd ich schon mal versuchen, das erstmal ohne netbeans zu versuchen...

ich kann ja dann immer noch zu netbeans greifen, wenn ich irgendwo hänge oder so...

danke für eure hilfe ;)
 
... na dann lieber hier fragen oder google.de fragen ;) Netbeans halte ich wirklich für gar keine gute Idee - sehr hinderlich für guten Programmierstil ;)
 
samotyr schrieb:
Auch wenn der Tipp gut gemeint ist, finde ich ihn nicht so gut. Man sollte am Anfang erst mal per Hand eine GUI erstellen, damit man mit den Details, Besonderheiten und Strukturen vertraut wird.
Später kann man dann auch sowas wie Netbeans nutzen, wenn mans gelernt hat.
Ich denke nicht, dass man durch das sinnlose Zusammengehacke von GUI-Code viel lernt.

@P13RR3: Was nimmt man denn stattdessen für größeres?
 
Zusammengehacke? Man muss sich mit der API befassen, Dokumentation durchlesen und sich darüberhinaus mit der Struktur von Swing auseinandersetzen.
Du findest das alles überflüssig und "sinnlos" ? Und stattdessen ist das besonders "lernintensive" Zusammenklicken von GUI-Elementen für dich also lern-pädagogisch wertvoll? Wo ist der Lerneffekt wohl höher?

Also gut, ich sag mal nichts weiter dazu. Jedem das seine.
Wenn dein GUI Code aus "Zusammengehacke" besteht, würde ich mir mal Gedanken machen..

Als kleinen Tipp für saubere GUI Programmierung werfe ich mal einfach das Stichwort "Model-view-controller" in den Raum. Der nicht klickende Teil der Programmiererschaft wird damit sicher was anfangen können :)
 
Zuletzt bearbeitet:
samotyr schrieb:
Zusammengehacke? Man muss sich mit der API befassen, Dokumentation durchlesen und sich darüberhinaus mit der Struktur von Swing auseinandersetzen.
Du findest das alles überflüssig und "sinnlos" ? Und stattdessen ist das besonders "lernintensive" Zusammenklicken von GUI-Elementen für dich also lern-pädagogisch wertvoll? Wo ist der Lerneffekt wohl höher?
Das habe ich nicht behauptet. Die Dokumentation lesen und sich damit auseinandersetzen sollte/muss man auch wenn man etwas „zusammenklickt“. Aber der Lerneffekt beim stupiden Instanzieren und Ausrichten von GUI-Elementen ist fast Null und nur unwesentlich höher als beim Zusammenklicken.

Als kleinen Tipp für saubere GUI Programmierung werfe ich mal einfach das Stichwort "Model-view-controller" in den Raum. Der nicht klickende Teil der Programmiererschaft wird damit sicher was anfangen können :)
Das ist kein Tipp, damit muss man sich bei Java zwangsläufig beschäftigen, gerade beim Zusammenklicken. Ich habe das Gefühl, dass du dir den GUI-Editor von Netbeans noch nie selbst ernsthaft angeschaut hast. Klar kann man damit ein schrecklich konfuses Programm fabrizieren, das kriegt man aber durch selbst schreiben viel „besser“ hin(wenig Ahnung vorrausgesetzt).
 
Zuletzt bearbeitet:
Also ich programmiere jetzt seit 3 Jahren Semi-Professionell Java. Dabei habe ich erst mit Eclipse (+VE) angefangen, bin davon aber seit der neuen NetBeans Version weg.

Netbeans 6 bietet eigentlich alles, was man braucht. Die Funktionen sind klasse, Plugins sind verfügbar für eigentlich alles wichtige und der Gui-Builder baut schön übersichtlichen Code.
Für Mobile Anwendungen ist es außerdem auch sehr geeignet!!

Damit würde ich anfangen, den Code kann man später immernoch zusammenstutzen oder optimieren.
 
Darii schrieb:
@P13RR3: Was nimmt man denn stattdessen für größeres?

Naja, kein NetBeans? ;) Eclipse tuts doch völlig... Ich kann mir nicht vorstellen eine anspruchsvolle GUI mit Netbeans zu realisieren/ zusammen zu klicken.

@Samotyr: ganz deiner Meinung :) Bloß wird das MVC-Konzept für ein einfaches Schulprojekt - wo er doch auch kaum Erfahrung hat - wohl etwas zu "streng" sein.
 
Ich bin von Haus aus Eclipse-User und bin sehr zufrieden. Ich benutze es auch beruflich (als Software-Entwickler). NetBeans habe ich bisher nur kurz mal angeguckt und bin gleich wieder zu Eclipse zurückgegangen. Hat mir einfach nicht gefallen.

Man sollte sich beides mal angucken und sich danach erst entscheiden.
 
Naja, wie intensiv kann man sich denn den Netbeans Editor anschauen?
Ich hab letztens ein kleineres Projekt realisiert und Netbeans 6 benutzt. Es ging natürlich schneller und war auch bequemer, aber gelernt habe ich dabei so gut wie nichts.

Das Nachschlagen von Funktionen, das Durchlesen von Tutorials und ähnlichem entfällt wenn man sich die Sachen zusammenklickt. Und sowas sollte man einem Anfänger, der vielleicht später mal weitergehen will in diesem Bereich, nicht empfehlen. Das kann man sich als Fortgeschrittener/Profi ja gerne gönnen, aber nicht als Anfänger.

Die Empfehlung von mir für den Anfang wäre auch eclipse zusammen mit der Java Api Doc und den Tutorial Seiten von Sun. Und das Grundlagenwissen was man bei dieser Arbeit erlangt bringt einem auch für andere Programmiersprachen was.

@Darii
Du bist da etwas pragmatisch hab ich das Gefühl und hast sicherlich schon desöfteren mit GUI Programmierung zutun gehabt. Aber wir reden hier doch über einen Anfänger, der Threadersteller macht sich vermutlich das erste mal Gedanken über GUIs. Warum dann nicht gleich das richtige Grundlagenwissen schaffen? Und dabei kann man auch gleich den Umgang mit APIs, Dokumentationen und Tutorials üben.
Ich behaupte jetzt einfach mal ganz kaltschnäuzig, dass der Lerneffekt wesentlich größer ist, wenn man keine Zusammenklick-Tools zur Hand hat und sich in Kleinarbeit mit der Materie auseinandersetzt. Wohlgemerkt davon ausgehend, dass man sich das erste mal mit der GUI Programmierung in Java auseinandersetzt.

@P13RR3
Ja für nur ein simples (evtl. einmaliges?) Schulprojekt is das natürlich nix. Da reicht das Klicki-Klicki dann natürlich auch aus :)
_________________________________________________________

Egal für was sich der Threadersteller letztendlich entscheidet: ich find's klasse, dass ihr so tollen Informatik Unterricht in der Schule habt. Ich wünschte, das hätts zu meiner Schulzeit bzw. an meiner Schule auch schon in dieser Form gegeben :)
 
samotyr schrieb:
Und das Grundlagenwissen was man bei dieser Arbeit erlangt bringt einem auch für andere Programmiersprachen was.

Also das würde ich so nicht unterschreiben ;-) Swing ist doch schon recht spezifisch und ich denke so wie Darii: durch Instanzieren und Ausrichten investiert man viel Zeit, aber wirklich viel lernen wird man dabei eher weniger.

Wir haben das zum Beispiel in der Vorlesung recht lange gemacht, aber am Ende kommt man ja doch nicht um die API herum wenn man wirklich mal eine GUI erstellen möchte. Und das ist eigentlich auch beim Zusammenklicken mit NetBeans der Fall. Ohne zu wissen wie die einzelnen Elemente reagieren und angeordnet sind, z.B. die einzelnen Panes, kommt man da schließlich auch nicht allzu weit.
Allerdings erspart man sich meiner Meinung nach sinnloses Code-eingetippe ;-)

Für den Anfang sieht man dort auch gleich eine mögliche sinnvolle Aufteilung der einzelnen Elemente, z.b. werden die Listener als innere Klasse abgelegt und sorgt etwas für Übersicht. Und ich betone "möglich sinnvoll" ;-)
 
Zurück
Oben