GUI Programmierung - Tipps & Tricks - Ulm · Seite 22 GUI Programmierung Tipps & Tricks zu...

Preview:

Citation preview

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 unterprogwerkstatt.informatik@uni-ulm.de zur Verfügung

Seite 29 GUI Programmierung Zusammenfassung

Heute ist nicht alle Tage,wir kommen wieder keine Frage.

Recommended