GUI Programmierung - Tipps & Tricks - Ulm · Seite 22 GUI Programmierung Tipps & Tricks zu GUIs...
Transcript of GUI Programmierung - Tipps & Tricks - Ulm · Seite 22 GUI Programmierung Tipps & Tricks zu GUIs...
GUI ProgrammierungProgWerkstatt | 7. Dezember 2006 Tipps & Tricks
Seite 2 GUI Programmierung
Überblick
1 Motivation
2 GrundlagenJava Coding ConventionsJavadoc CommentsGroupLayout unter NetBeans
3 OpenOffice & HSQL
4 Tipps & Tricks zu GUIsJava EventsJava ObserverEingabeüberprüfung auf GUI-EbeneJTree Model
5 Arbeiten mit Versionskontrolle
6 Zusammenfassung
Seite 3 GUI Programmierung Motivation
GUI Programmierung
1 Motivation
2 GrundlagenJava Coding ConventionsJavadoc CommentsGroupLayout unter NetBeans
3 OpenOffice & HSQL
4 Tipps & Tricks zu GUIsJava EventsJava ObserverEingabeüberprüfung auf GUI-EbeneJTree Model
5 Arbeiten mit Versionskontrolle
6 Zusammenfassung
Seite 4 GUI Programmierung Motivation
Motivation
I Aufzeigen von MöglichkeitenI Tipps & Tricks für effizienteres ArbeitenI Mögliche Fehlerquellen vermeidenI Hilfreiche Praxisbeispiele
Seite 5 GUI Programmierung Grundlagen
GUI Programmierung
1 Motivation
2 GrundlagenJava Coding ConventionsJavadoc CommentsGroupLayout unter NetBeans
3 OpenOffice & HSQL
4 Tipps & Tricks zu GUIsJava EventsJava ObserverEingabeüberprüfung auf GUI-EbeneJTree Model
5 Arbeiten mit Versionskontrolle
6 Zusammenfassung
Seite 6 GUI Programmierung Grundlagen Java Coding Conventions
Warum Coding Conventions?
I Bessere Wartbarkeit des CodesI 8 Leute im TeamI Code verständlicher für die anderenI Siehe auch:
http://java.sun.com/docs/codeconv/
Seite 7 GUI Programmierung Grundlagen Java Coding Conventions
Wo steht Was?
1. Klassendeklaration2. Variablen
I Zuerst die statischen VariablenI Reihenfolge jeweils public, protected, private
3. Konstruktoren4. Methoden
Seite 8 GUI Programmierung Grundlagen Java Coding Conventions
Was nenne ich Wie?
I Klassen→ Substantive (beginnen mit Großbuchstabe)public class Beispiel { ..
I Methoden→ Verben (beginnen mit Kleinbuchstabe)private void machWas() { ..
I VariablenI Möglichst keine Ein-Buchstaben-Variablen, falls doch:I i,j,k,m,n für intI c,d,e für charI Konstanten in Großbuchstaben, Wörter getrennt durch ’_’
Seite 9 GUI Programmierung Grundlagen Java Coding Conventions
Leerzeichen und LeerzeilenI Leerzeilen
I Zwischen MethodenI Zwischen Variablen und StatementsI Vor Kommentaren
I LeerzeichenI Beispiel:a + b = c;String s = "Irgendwas " + a + " noch etwas";
I Aber:a++;
I Vor Castsa = (int) b;
Seite 10 GUI Programmierung Grundlagen Javadoc Comments
Kommentare allgemein
I Am Anfang jeder DateiI Vor KlassendeklarationenI Vor MethodenI Evtl. vor Variablen
Seite 11 GUI Programmierung Grundlagen Javadoc Comments
Verschiedene Arten von Kommentaren
/* single-line comment */
a + b = c; // end-of-line comment
/** block comment*/
/*** javadoc comment*/
Seite 12 GUI Programmierung Grundlagen Javadoc Comments
Aufbau
I Tags@author Name des Autors@param Name des Parameters Beschreibung@return Beschreibung des Rückgabewerts
I FormatierungenI Einfache HTML-Elemente können zur Formatiierung benutzt werden
(<p>,<ul>,<li>,...)I <code></code>-Style für z.B. Package- oder Klassennamen
I Erster Satz dient als Zusammenfassung
Seite 13 GUI Programmierung Grundlagen GroupLayout unter NetBeans
GroupLayout
I Neues LayoutprinzipI Erstmals verwendet in Netbeans (Matisse GUI-Builder)I In Java SE 6 enthaltenI In der Zwischenzeit auch von anderen Gui-Buildern unterstützt
I Jigloo http://www.cloudgarden.com/jigloo/I Windowbuilder Pro http://windowbuilderpro.com/
I Tutorial: http://www.netbeans.org/kb/55/quickstart-gui.html
Seite 14 GUI Programmierung OpenOffice & HSQL
GUI Programmierung
1 Motivation
2 GrundlagenJava Coding ConventionsJavadoc CommentsGroupLayout unter NetBeans
3 OpenOffice & HSQL
4 Tipps & Tricks zu GUIsJava EventsJava ObserverEingabeüberprüfung auf GUI-EbeneJTree Model
5 Arbeiten mit Versionskontrolle
6 Zusammenfassung
Seite 15 GUI Programmierung OpenOffice & HSQL
Kommunikation mit OpenOffice Base über HSQL
LIVEDEMO
Seite 16 GUI Programmierung Tipps & Tricks zu GUIs
GUI Programmierung
1 Motivation
2 GrundlagenJava Coding ConventionsJavadoc CommentsGroupLayout unter NetBeans
3 OpenOffice & HSQL
4 Tipps & Tricks zu GUIsJava EventsJava ObserverEingabeüberprüfung auf GUI-EbeneJTree Model
5 Arbeiten mit Versionskontrolle
6 Zusammenfassung
Seite 17 GUI Programmierung Tipps & Tricks zu GUIs Java Events
Java Event ModelI 2 verschiedene Eventkategorien
I low-level Events (Tastatur-/Mauseingabe)I semantische Events (z.B. actionPerformed)
I Semantische Events müssen nicht zwangsläufig durch low-level Eventsausgelöst werden (z.B. TableModelEvent)
I Wenn möglich semantische Events verwendenI sichererI komfortabler
Seite 18 GUI Programmierung Tipps & Tricks zu GUIs Java Events
Java Event Handling
I 3 Arten von ThreadsI Initial threads (Initialisierung/Systemstart)I Event-Dispatch thread (Benutzerinteraktion)I Worker threads (hintergründige Prozessabarbeitung)
I Event-Dispatch thread arbeitet alle Events sequentiell abI Verarbeitet auch paint-RoutinenI EventListener-Code sollte schnell ablaufen
I Aufwendige Berechnungen in Worker threads auslagernI javax.swing.SwingUtilities
invokeLater(Runnable task)I javax.swing.SwingWorker (ab JDK 1.6)
doInBackground(), run()
Seite 19 GUI Programmierung Tipps & Tricks zu GUIs Java Events
Adapterklassen
I Spart überflüssige SchreibarbeitI Bläht den Code nicht unnötig aufI Übersicht der wichtigsten EventListener & Adapterklassen:
http://java.sun.com/docs/books/tutorial/uiswing/events/api.html
Seite 20 GUI Programmierung Tipps & Tricks zu GUIs Java Events
Adapterklassen - Beispiel
public class MyClass implements MouseListener {...someObject.addMouseListener(this);.../* Empty method definitions. */public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mouseClicked(MouseEvent e) {//Event listener implementation...
}}
public class MyClass extends MouseAdapter {...someObject.addMouseListener(this);...
public void mouseClicked(MouseEvent e) {...//Event listener implementation}
}
Seite 21 GUI Programmierung Tipps & Tricks zu GUIs Java Observer
Java Observer
LIVEDEMO
Seite 22 GUI Programmierung Tipps & Tricks zu GUIs Eingabeüberprüfung auf GUI-Ebene
Eingabeüberprüfung auf GUI-Ebene
I Eingabeüberprüfung sollte wenn möglich in der GUI stattfindenI Erspart komplizierte AbfrageroutienenI Unzulässige Eingabemöglichkeiten sind direkt sichtbar
I 2 Heransgehenweisen möglich1. Überprüfung im Nachhinein
I InputVerifierNur zulässige Eingaben erlauben den Focus weiterzugeben
2. Überprüfung während der EingabeI JFormattedTextField
Mittels MaskFormatter wird eine eindeutige Eingabemaske vorgegebenI DocumentFilter
Nur zulässige Eingaben werden übernommen
Seite 23 GUI Programmierung Tipps & Tricks zu GUIs JTree Model
JTree Model
LIVEDEMO
Seite 24 GUI Programmierung Arbeiten mit Versionskontrolle
GUI Programmierung
1 Motivation
2 GrundlagenJava Coding ConventionsJavadoc CommentsGroupLayout unter NetBeans
3 OpenOffice & HSQL
4 Tipps & Tricks zu GUIsJava EventsJava ObserverEingabeüberprüfung auf GUI-EbeneJTree Model
5 Arbeiten mit Versionskontrolle
6 Zusammenfassung
Seite 25 GUI Programmierung Arbeiten mit Versionskontrolle
CVS & SVNI CVS
I WinCVSI in Eclipse und Netbeans bereits integriert
I SVNI TortoiseSVN (Shell-Integrierung von SVN-Kommandos)http://tortoisesvn.tigris.org/
I SubClipse (SVN Plug-in für Eclipse)http://subclipse.tigris.org/
I Subversion for NetBeanshttp://subversion.netbeans.org/
Seite 26 GUI Programmierung Arbeiten mit Versionskontrolle
Arbeiten mit SVNI Genereller Arbeitszyklus
1. Update2. evtl. Konflikte bereinigen3. Bearbeiten4. Commit (immer mit sinnvoller LogMessage)
I Repository sollte folgende Unterverzeichnisse enthaltentrunk Für alle Dateien im Hauptentwicklungszweig
branches Für abzweigende EntwicklungenI Abzweigungen können mittels Branch erstellt werdenI Merge führt verschiedene Zweige wieder zusammen
Seite 27 GUI Programmierung Zusammenfassung
GUI Programmierung
1 Motivation
2 GrundlagenJava Coding ConventionsJavadoc CommentsGroupLayout unter NetBeans
3 OpenOffice & HSQL
4 Tipps & Tricks zu GUIsJava EventsJava ObserverEingabeüberprüfung auf GUI-EbeneJTree Model
5 Arbeiten mit Versionskontrolle
6 Zusammenfassung
Seite 28 GUI Programmierung Zusammenfassung
Zusammenfassung
I Beispielcode online verfügbarI Für Fragen stehen wir auch über Weihnachten [email protected] zur Verfügung
Seite 29 GUI Programmierung Zusammenfassung
Heute ist nicht alle Tage,wir kommen wieder keine Frage.