Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ......

67
Einführung in die Informatik – Algorithmen und Datenstrukturen Graphische Benutzungsoberflächen

Transcript of Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ......

Page 1: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

Einführung in die Informatik – Algorithmen und Datenstrukturen

Graphische Benutzungsoberflächen

Page 2: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

Benutzungsschnittstelle

Spielt eine besondere Rolle bei der Überwindung der semantischen Lücke zwischen Anwendungswissen und technisch Machbarem:

!  Anwender soll Ergebnisse eines Algorithmus ohne technische Erläuterung des Entwicklers verstehen !  Anwender soll sein Wissen in Parametrierungen ausdrücken, ohne Details der Umsetzung zu kennen

Page 3: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

Benutzungsschnittstelle: Kommandozeile !  Kommandozeile: Befehle per Tastatur

Page 4: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

Zeichenbasierte Benutzungsschnittstelle !  textbasiert, aber über Menü geführt

Page 5: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

Graphische Benutzungsschnittstelle !  Graphisch: komplex, meist mit Maus bedient

Page 6: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

Sprachbasierte Benutzungsschnittstelle !  Eingaben erfordern Spracherkennung !  Ausgabe als aufgezeichneten Ton oder synthetischer

Stimme !  Beispiel: Sprachdialogsysteme, interaktive

Telefonansagedienste

Page 7: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

anfassbare Benutzungsschnittstelle !  tangible user interface: Interaktion durch physische

Objekte

http://commons.wikimedia.org/wiki/File:Reactable_Multitouch.jpg

Page 8: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

Natürliche Benutzungsschnittstelle !  an natürliche gewohnte Bewegungen angepasst !  z.B. touchscreens

Apple iOS Microsoft PixelSense

Page 9: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

Wahrnehmungsgesteuerte Benutzungsschnittstelle !  perceptual user interfaces: Gesten, eye tracking !  Auswertung der Augenbewegungen des Nutzers !  The Eye Tribe: Android Software für freihändige Bedienung

von Mobilgeräten http://www.golem.de/news/the-eye-tribe-android-geraete-mit-den-augen-steuern-1304-98813.html

Pico Eye Tracker: http://www.telepresenceoptions.com/2011/05/eyetracking_projector_keeps_yo/

Page 10: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

Gehirn-Computer-Schnittstelle !  Bedienung eines Computers über Gedanken !  z.B. Unterstützung körperlich behinderter Menschen

Stephen Hawking http://neurogadget.com/2012/01/13/reading-stephen-hawkings-brainwaves-is-not-the-first-avenue-to-explore-for-intel/3442

Nutzer mit Datenkappe http://www.golem.de/news/bci-samsung-forscht-an-tabletbedienung-per-hirnstrom-1304-98838.html

Page 11: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

Geschichte GUI !  Vorgänger der GUI entwickelt von Douglas

Engelbart: textbasierte Hyperlinks, die mit einer Maus manipuliert werden konnten (NLS, 1960)

!  Features: Computermaus, zweidimensionales Editieren, Verweise innerhalb von Dateien, mehrere Fenster, Editieren mehrerer Dateien, Versionskontrolle, Kontexthilfe, verteilte Client-Server-Architektur, Protokolle für virtuelle Terminals, Screensharing für Telekonferenzen uvm.

!  Mother of all demos

Page 12: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

Geschichte GUI !  „In the beginning was the command line“ (Neal

Stephenson,http://www.cryptonomicon.com/beginning.html) !  graphische Oberfläche ab 70er Jahren in Xerox

PARC entwickelt !  Steve Jobs kauft Lizenz und integriert GUI in LISA !  Commodore Amiga und Atari hatten in den 80er

Jahren ebenfalls Betriebssysteme mit graphischen Oberflächen

!  Entwicklung von Windows als graphische Oberfläche für DOS

!  viele Desktopumgebungen für UNIX-Systeme

Page 13: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

Geschichte: 1983 graphische Oberfläche Apple

Apple Lisa: 1 MB Arbeitsspeicher, 10 MB Festplatte (optional)

Page 14: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

Geschichte: 1985 Windows

Windows 1.0: DOS-Programme mit der Maus benutzen

Commodore Amiga: echtes Multitasking mit Workbench

Page 15: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

Geschichte 1987 Windows

Windows 2.0: Fenster verschieben, Größe ändern und überlappen

Page 16: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

Geschichte 1989: NeXT

NeXTSTEP: display postscript, objektorientierte Anwendungsprogrammierung und Entwicklungswerkzeuge, 3D-Look

Page 17: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

Geschichte: 1990 Windows

Windows 3.0: Multimedia-Extension, Bildschirmschoner

Page 18: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

Geschichte: 1995 Windows

Windows 95: Startmenü und Taskleiste, Kontextmenü für rechte Maustaste

Page 19: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

Geschichte: 2001 Mac OS

Mac OS X: UNIX-ähnliches System, 32bit, keine Abwärtskompatibilität

Page 20: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

Geschichte: 2006 OLPC-Projekt, Sugar

Sugar Startbildschirm Sugar Kommunikation und Vernetzung

Page 21: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

Geschichte: 2012 Windows

Windows 8: Kacheloberfläche für Touchscreens

Page 22: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

Geschichte: 2013

Page 23: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

Zukunft?

Minority Report

Avatar

Page 24: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

Grundbegriffe Benutzerschnittstelle !  „Die Benutzerschnittstelle

(Benutzungsschnittstelle, Mensch-Maschine-Schnittstelle, User Interface, Human-Computer-Interface) ist die Gesamtheit der dem Benutzer für den Dialog zur Verfüg stehenden Hardware eines interaktiven Systems und dessen Verhalten in Abhängigkeit von den Benutzereingaben, festgelegt durch die Software.“

/Peter Forbrig, Immo O. Kerner, Lehr- und Übungsbuch Softwareentwicklung, Fachbuchverlag Leipzig, 2004/

Page 25: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

Grundbegriffe Dialog !  „Ein Dialog ist ein Ablauf, bei dem der Benutzer zur

Abwicklung einer Arbeitsaufgabe – in einem oder mehreren Schritten – Daten eingibt und jeweils Rückmeldungen über die Verarbeitung dieser Daten erhält.“

Ergonomie !  „Ergonomie soll prinzipiell alle notwendigen Voraussetzungen

für ein optimales Zusammenwirken von Mensch, Betriebsmittel und Werkstoffen bei der Erfüllung einer gestellten Arbeitsaufgabe schaffen oder verbessern.“

Hardware-Ergonomie !  „Hardware-Ergonomie ist die optimale Gestaltung des

Systems, ohne die Gesundheit des Anwenders zu beeinträchtigen.“

/Peter Forbrig, Immo O. Kerner, Lehr- und Übungsbuch Softwareentwicklung, Fachbuchverlag Leipzig, 2004/

Page 26: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

Grundbegriffe Software-Ergonomie !  „Die Software-Ergonomie ist die Anpassung eines

Softwaresystems an die psychischen und physischen Eigenschaften des Menschen.“

Benutzerfreundlichkeit !  „Die Benutzerfreundlichkeit ist eine Bezeichnung für

die „Gebrauchsfähigkeit“ eines Produktes. Während man mit Ergonomie die Nutzbarkeit und die Optimierung der Bewegungsabläufe unter Ablaufgesichtspunkten betrachtet, befasst sich die regelmäßige Überprüfung der Benutzerfreundlichkeit mit logischen und intuitiven Ablaufprozeduren einer Handlung.“

/Peter Forbrig, Immo O. Kerner, Lehr- und Übungsbuch Softwareentwicklung, Fachbuchverlag Leipzig, 2004/

Page 27: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

Benutzerfreundlichkeit - Grundeigenschaften Ein benutzerfreundliches System sollte folgenden

Grundeigenschaften genügen: •  einheitliche und übersichtliche Bedienbarkeit der

einzelnen Teilwerkzeuge des Gesamtsystems •  Einhaltung des entsprechenden Richtlinienkatalogs des

verwendeten Oberflächenstandards •  einfache und schnelle Hilfsmittelbereitstellung für

Fehlerdiagnose und –korrektur •  flexible Anpassung an die Benutzerbedürfnisse •  leicht erlernbare Handhabung •  qualitative und quantitative Arbeitserleichterung in

spezifischen Anwendungen

/Peter Forbrig, Immo O. Kerner, Lehr- und Übungsbuch Softwareentwicklung, Fachbuchverlag Leipzig, 2004/

Page 28: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

Benutzerfreundlichkeit - Grundeigenschaften Ein benutzerfreundliches System sollte folgenden Grundeigenschaften genügen:

•  ergonomische Angemessenheit bei der Gestaltung von Bildschirm- und Druckausgaben

• Gestaltung eines einfachen Vor- und Rückwärtsgehens im Problemlösungsprozess

•  sichere und robuste Bedienung von Tastatur und Oberflächenobjekten, wie beispielsweise Menüs und Knöpfe

•  übersichtliche Dokumentation aller Einzelheiten des Problemlösungsprozesses

/Peter Forbrig, Immo O. Kerner, Lehr- und Übungsbuch Softwareentwicklung, Fachbuchverlag Leipzig, 2004/

Page 29: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

Anforderungen an GUI !  Aufgabenangemessenheit !  Selbstbeschreibungsfähigkeit !  Steuerbarkeit !  Erwartungskonformität !  Fehlertoleranz !  Individualisierbarkeit !  Lernförderlichkeit

http://de.wikipedia.org/wiki/Grafische_Benutzeroberfl%C3%A4che !  Europäische Norm EN ISO 9241.110 ff.

Page 30: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

WIMP Paradigma !  window, icon, menu, pointing device !  verwendet für Interaktion ein Eingabegerät, das

einen Zeiger steuert (oft Maus) !  präsentiert Informationen zusammengefasst in

Fenstern und repräsentiert durch Icons !  basiert auf der Desktop-Metapher (Simulation eines

Schreibtisches mit Dokumenten, Ordnern etc.)

Page 31: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

Post-WIMP Interface !  Optimierung für computergestütztes Design, Bearbeitung

großer Datenmengen oder interaktive Spiele !  10-foot user interface: Darstellung auf großem

Fernsehbildschirm, 10 feet sind der Abstand, aus dem man noch die GUI-Elemente erkennen kann, um sie mit einer Fernbedienung zu bedienen

!  NUI: natural user interface, ist bzw. wird nach erlernen praktisch unsichtbar für Benutzer, basiert auf der Natur oder natürlichen Elementen (im Gegensatz zu den künstlichen Steuergeräten, die erst erlernt werden müssen)

(Noncommand User Interfaces, Jakob Nielsen http://www.nngroup.com/articles/noncommand/)

Page 32: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

MVC – Model – View - Controller !  hier: Anwendung bzw. Erstellung von GUI mit Java !  WIMP - Paradigma als Grundlage !  Unterscheidung zwischen Funktionalität eines

Programms, Steuerung und Präsentation – MVC !  Softwarearchitektur-Muster, das die Darstellung der

Information von der Interaktion des Benutzers mit der Information trennt

Page 33: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

GUI mit Java !  plattformübergreifende Programmiersprache braucht

plattformübergreifende Möglichkeiten für GUI-Gestaltung

!  umfangreiche Klassenbibliotheken verfügbar !  Komponenten werden auf dem Bildschirm arrangiert !  Komponenten werden durch Objekte repräsentiert !  GUI-Bibliotheken in Java: AWT (Abstract Window

Toolkit) und Swing !  AWT-Komponenten basieren auf nativen

Bedienkomponenten, Swing-Komponenten werden von Java gezeichnet

Page 34: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

AWT- und Swing-Klassenhierarchie

Quelle: RAT10, S. 416

Page 35: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

35

Softwareergonomie - Dialogbetrieb Im Dialogbetrieb erfolgt die Kommunikation zwischen Benutzer und System interaktiv über die graphische Benutzungsoberfläche. „Mit Interaktion (Interaction) wird die unmittelbare Wechselbeziehung zwischen den Benutzereingabeaktionen und den Computerausgabeaktionen bezeichnet“ Interaktionsformen: z.B. •  Frage und Antwort •  Menüauswahl •  Masken und Formulare •  Interaktionssprachen •  natürliche Sprachen •  graphische Interaktion

/Peter Forbrig, Immo O. Kerner, Lehr- und Übungsbuch Softwareentwicklung, Fachbuchverlag Leipzig, 2004/

Page 36: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

36

Oberflächenobjekte

Zur Gestaltung von Benutzungsoberflächen werden Oberflächenobjekte verwendet, die prinzipiell 7 Klassen zugeordnet werden können. Die Objekte werden in Formularen angeordnet. Formular: „Ein Formular ist eine in der Struktur genau definierte Eingabemaske, in die der Benutzer in vorgegebene Felder die geforderten Informationen eintragen kann.“

/Peter Forbrig, Immo O. Kerner, Lehr- und Übungsbuch Softwareentwicklung, Fachbuchverlag Leipzig, 2004/

Page 37: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

37

Java – GUI - Basisklassen

Grundkompo-nenten

einfache Oberflächen-Elemente, z.B.: • Beschriftungen, • Knöpfe, • Auswahlfelder, • Klapptafeln

Container

spezielle Komponenten, die selbst wieder Komponenten enthalten können

Layout-Manager,

Farben, Fonts Klassen, deren Objekte für die Anordnung und Gestaltung der einzelnen Komponenten zuständig sind

Ereignisse, Listener

Klassen für die Erzeugung und Verarbeitung von Ereignissen, die für die Interaktion der Komponenten mit dem Anwender benötigt werden

Page 38: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

38

Basisklasse - Component

/Quelle: RAT10, S. 416/

Page 39: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

39

Basisklasse Component Component ist eine abstrakte Basisklasse, die Methoden zur Verfügung stellt, die von AWT- und Swing-Komponenten genutzt werden können. • public Color getBackground()

gibt die Hintergrundfarbe einer Komponente zurück • public void setBackground(Color c)

setzt die Hintergrundfarbe einer Komponente auf die Farbe c • public Color getForeground()

gibt die Schriftfarbe einer Komponente zurück • public void setForeground(Color c)

setzt die Schriftfarbe einer Komponente auf die Farbe c • public Color getFont()

gibt die Schriftart einer Komponente zurück • public void setFont(Font f)

setzt die Schriftart einer Komponente auf die Schriftart f

Page 40: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

40

Basisklasse Component - Methoden • public int getHeight()

gibt die die Höhe der Komponente in Pixel zurück • public int getWidth()

gibt die Breite einer Komponente in Pixel zurück • public void setLocation(int x, int y)

positioniert eine Komponente auf die festgelegte Position bezüglich der linken oberen Ecke in Pixel

• public void setSize(int width, int height) setzt die Breite und Höhe einer Komponente

• public boolean isVisible() gibt true zurück, wenn eine Komponente sichtbar ist, sonst falsch

• public void setVisible(boolean b) schaltet die Komponente sichtbar, wen b den Wert true hat bzw. unsichtbar, wenn b den Wert false hat

Page 41: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

41

Basisklasse - Container

/Quelle: RAT10, S. 416/

Page 42: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

42

Basisklasse Container Container ist eine Basisklasse, deren Objekte andere Komponenten enthalten können. • public Component add(Component comp)

fügt die Komponente comp dem Container hinzu • public Component add(Component comp, int index)

fügt die Komponente comp dem Container hinzu. Mit index wird der Einfüge-Index in der Liste der Komponenten angegeben

• public Component add(Component comp, Object constraints) fügt die Komponente comp dem Container hinzu. Mit constrains werden die Layoutbedingungen festgelegt

• public void remove(Component comp) entfernt die Komponente comp aus dem Container

• public void setLayout(LayoutManager mgr)) legt das Layout des Containers fest

Page 43: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

Fenster: „Ein Fenster (Window) ist in den meisten Fällen ein rechteckiges und umrahmtes Feld (abgegrenzte Fläche) zur Darstellung oder Eingabe auf dem Bildschirm, dessen Größe und Lage vom Benutzer verändert werden kann.“ Ein Fenster kann aus den Bereichen : •  Fensterinformationsbereich •  Befehlsbereich •  Arbeitsbereich •  Systemmeldungsbereich Bestehen.

43

Oberflächenobjekte - Fenster

/Peter Forbrig, Immo O. Kerner, Lehr- und Übungsbuch Softwareentwicklung, Fachbuchverlag Leipzig, 2004/

Page 44: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

44

Oberflächenobjekte - Dialogfenster Dialogfenster: „Ein Dialogfenster (dialog window) ist ein Fenster zur Erfragung einer semantisch zusammenhängenden Gruppe von Benutzerinformationen.“ Formen von Dialogfenstern •  modal – das Anwendungsprogramm wird solange gesperrt, bis der Benutzer seine Eingaben abgeschlossen hat •  nicht modal – Fenster können durch Aktivierung eines anderen Fensters der selben Anwendung zurückgestellt werden •  Paletten – Dialogfenster, die ständig auf der Oberfläche liegen •  Mitteilungsfenster – Fenster, die keine Datenbearbeitung erlauben

/Peter Forbrig, Immo O. Kerner, Lehr- und Übungsbuch Softwareentwicklung, Fachbuchverlag Leipzig, 2004/

Page 45: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

45

AWT- und Swing-Klassenhierarchie

/Quelle: RAT10, S. 416/

Page 46: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

46

Erzeugen eines Fensterobjektes mit Swing in BlueJ

public void fensterErzeugen() { // Erzeuge ein Fenster-Objekt JFrame fenster = new JFrame(); // Setzen des Titels des Fensters fenster.setTitle("Fenster erzeugt mit Swing"); // Setzen der Groesse des Fensters in Pixel fenster.setSize(400,300); // Darstellen des Fensters fenster.setVisible(true); }

Page 47: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

47

Nutzung der Methode setTitle

Page 48: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

48

Inhaltsbereich eines Fensters Content Pane (Glasscheibe) Zur Darstellung von Komponenten im Inhaltsbereich eines Fensters wird ein Objekt von der Klasse Container erzeugt. Dieses Objekt stellt die „Fensterscheibe“ dar, auf die die Oberflächenkomponenten „geklebt“ werden.

Page 49: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

49

Farben – Klasse Color Die Klasse Color ermöglicht die Erzeugung von Farbobjekten. Die Farben werden entsprechend dem RGB-Farbmodell festgelegt. • public Color(int r, int g, int b)

erzeugt ein Color-Objekt mit den entsprechenden RGB-Werten • public Color(float r, float g, float b)

erzeugt ein Color-Objekt mit den entsprechenden RGB-Werten (Farbanteile zwischen 0.0 und 1.0)

Konstanten der Klasse Color: BLACK, BLUE, CYAN,DARK_GRAY, GREEN, LIGHT_GRAY, MAGENTA, ORANGE, PINK, RED, WHITE, YELLOW

Page 50: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

50

Erzeugen eines farbigen Fensterobjektes public class Farbiges_Fenster extends JFrame { private Farbiges_Fenster fenster_1; public void erzeuge_Fenster(int rot, int gruen, int blau) { Container c; // Erzeuge ein Fenster-Objekt fenster_1 = new Farbiges_Fenster(); // Definieren eines Farbobjektes Color bG = new Color(rot,gruen,blau); fenster_1.setTitle("Farbiges Ausgabefenster"); fenster_1.setSize(400,300); fenster_1.setLocation(400,100); c = fenster_1.getContentPane(); c.setLayout (new FlowLayout()); c.setBackground(bG); c.setForeground(Color.ORANGE); fenster_1.setVisible(true); } }

Page 51: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

51

Farben – Klasse Font Die Klasse Font ermöglicht die Erzeugung von Schriftartobjekten. Mit dem Schriftartobjekt wird die Font-Familie, der Schriftschnitt und die Schriftgröße in Punkten festgelegt.

• public Font(String name, int style, int size) erzeugt ein Font-Objekt entsprechend den gegebenen Werten für die Schriftart, den Schriftschnitt und die Schriftgröße in Pixel.

Für die Schriftart sollten Schriftfamilien, wie Monospace, SansSerif oder Serif angegeben werden. Der Schriftschnitt wird durch ganzzahlige Konstanten festgelegt (BOLD, ITALIC, PLAIN).

Page 52: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

52

Layoutmanager – die Klasse FlowLayout Mit dem Layoutmanager wird die Anordnung der verschiedenen Komponenten in einem Container festgelegt. Wird ein Objekt der Klasse FlowLayout erzeugt, so werden die Komponenten fließend – von links nach rechts zeilenweise in den Container eingefügt. Die Ausrichtung in der Zeile erfolgt standardmäßig zentriert. Zwischen den Komponenten findet sich horizontal und vertikal jeweils ein Abstand von 5 Punkten. • public FlowLayout()

erzeugt ein FlowLayout-Objekt mit den Standardeinstellungen • public FlowLayout(int align)

erzeugt ein FlowLayout-Objekt mit einer Ausrichtung gemäß align • public FlowLayout(int align, int hp, int v)

erzeugt ein FlowLayout-Objekt mit einer Ausrichtung gemäß align und den horizontalen und vertikalen Abständen von hp und v

Page 53: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

53

Layoutmanager – die Klasse BorderLayout Wird ein Objekt der Klasse BorderLayout erzeugt, so werden die Komponenten entsprechend der fünf Gebiete NORTH, SOUTH, WEST, EAST, CENTER eingefügt. Beim Aufruf wird BorderLayout die „Himmelsrichtung“ hinzugefügt.

• public BorderLayout() erzeugt ein borderLayout-Objekt mit den Standardeinstellungen (0-Abstände zwischen den Gebieten)

• public BorderLayout(int h, int v) erzeugt ein borderLayout-Objekt mit horizontalen bzw. vertikalen Abständen von h bzw. v Pixel zwischen den Gebieten

Page 54: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

54

Basisklasse - JComponent

/Quelle: RAT10, S. 416/

Page 55: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

55

Basisklasse JComponent JComponent ist eine Basisklasse für alle Swing-Komponenten, mit Ausnahme der Top-Level-Container. • public boolean isOpaque()

gibt true zurück, wenn die Komponente einen undurchsichtigen Hintergrund besitzt, sonst false

• public void setOpaque(boolean b) setzt den Hintergrund der Komponente auf undurchsichtig, wenn b den Wert true hat, bzw. durchsichtig, wenn b den Wert false hat

• public String getToolTipText() gibt den aktuellen Tooltip-Text der Komponente zurück

• public void setToolTipText(String text) legt text als Tooltip-Text (pop-up-Fenster zur Komponente) fest

• public void setLayout(LayoutManager mgr)) legt das Layout des Containers fest

Page 56: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

GUI erstellen mit NetBeans !  Open source Entwicklungsumgebung u.a. für Java

(vergleichbar Eclipse) !  schnelle und einfache Erstellung von graphischen

Oberflächen !  kostenloser Download unter

https://netbeans.org/downloads/index.html !  Projekt benötigt main class (Klasse, von der beim

Starten des Projektes eine Instanz erzeugt wird) !  graphische Klasse bei Projekten mit graphischen

Oberflächen, JFrame

Page 57: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

1.neues Projekt erstellen

Page 58: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

2. „set main class“ deaktivieren

Page 59: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

3. im Projekt neue Klasse erstellen

Page 60: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

4. Designansicht zeigt Komponenten

Page 61: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

5. Quelltextansicht mit automatisch generiertem Quelltext

Page 62: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

GUI erstellen mit NetBeans – erste Schritte !  weiterer generierter Quelltext ist verborgen und kann

durch Klick auf + angezeigt werden !  grau hinterlegter Quelltext kann nicht editiert

werden, Bsp.: Hinzufügen eines Buttons mit der Maus fügt nicht editierbaren Quelltext hinzu

!  Komponenten hinzufügen in Designansicht aus der Palette

!  Konfiguration der Komponenten im Fenster „Properties“ oder über rechten Mausklick auf die Komponente

Page 63: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

Ereignisverarbeitung mit NetBeans

!  Auswahl des Ereignisses der Komponente erzeugt automatisch ActionListener und Methodenrumpf, der dann um die gewünschten Befehle ergänzt werden muss

!  in Designansicht: Rechtsklick auf Ereignisquelle (z.B. Button), dann Event >> action >> actionPerformed

Page 64: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

Ereignisverarbeitung mit NetBeans

!  im Quelltext: in initComponents() wurde zum Button ein ActionListener() als anonyme Klasse hinzugefügt und ein Methodenrahmen zur Programmierung des Ereignisses wurde erstellt

Page 65: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

NetBeans Features (Auswahl) !  automatisch generierter Quelltext !  Autovervollständigung beim Tippen von Befehlen !  Syntaxfehler werden sofort am Zeilenanfang

durch rotes ! gekennzeichnet – Mausbewegung auf Symbol zeigt Fehlermeldung an

!  wenn verfügbar, werden beim Klick auf das Symbol Lösungsvorschläge angeboten, wie z.B. das Hinzufügen der zu importierenden Pakete beim Verwenden spezieller Klassen

Page 66: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

66

Kontrollfragen 1. Erklären Sie den Begriff „Benutzungsmodell“ für

Softwareapplikationen. 2. Nennen Sie Grundeigenschaften eines

benutzerfreundlichen Softwaresystems. 3. Geben Sie die Richtlinien für die Bedienungsgestaltung

von interaktiven, graphischen Benutzeroberflächen an und erläutern Sie diese kurz.

4. Erläutern Sie den Begriff „Graphische Benutzungsoberfläche“. Was versteht man in diesem Zusammenhang unter Interaktion? Geben Sie 4 typische Interaktionsformen an.

5. Nennen Sie 4 Gestaltungsgrundsätze. Erläutern Sie einen dieser Grundsätze.

Page 67: Einführung in die Informatik – Algorithmen und ... · Windows 2.0: Fenster verschieben, ... einer Fernbedienung zu bedienen ! NUI: natural user interface, ... die von AWT- und

Literatur /BALZERT96/ Balzert, Helmut; Lehrbuch der Softwaretechnik;

Spektrum Verlag, 1996 /BARNES09/ David J. Barnes, Michael Kölling

Java lernen mit BlueJ Pearson Studium, 2009, ISBN-13: 978-3-86894-001-5

/FORBRIG04/ Forbrig, Peter; Immo O. Kerner, Lehr- und Übungsbuch Softwareentwicklung, Fachbuchverlag Leipzig, 2004 ISBN 3-446-22578-1

/RATZ10/ Ratz, Dietmar; Scheffler, Jens; Seese, Detlef; Wiesenberger, Jan; Grundkurs Programmieren in JAVA; Carl-Hanser-Verlag, München, Wien; 2010 ISBN 3-935042-00-0

/KEMPE/ Kempe, Tepaße (Hrsg.); Softwareentwicklung mit Greenfoot und BlueJ, Schöningh-Verlag

Java Handbuch in deutsch http://www.dpunkt.de/java/index.html

67