Seite Architektur interaktiver Systeme. 7. Architektur interaktiver Systeme. 7.1 Entkopplung durch Sichten. Schichtenarchitektur

Ähnliche Dokumente
1. Konventionelle Ein-/Ausgabebetonte Programmierung

B1. Ein-/Ausgabebetonte Programmierung

B1. Ein-/Ausgabebetonte Programmierung

B1. Ein-/Ausgabebetonte Programmierung

7. Architektur interaktiver Systeme

7. Architektur interaktiver Systeme

Architektur interaktiver Systeme

Wiederholung: Objektorientierte Oberflächen-Programmierung mit Java und Swing

Architektur interaktiver Systeme

Architektur interaktiver Systeme

2. Programmierung von Benutzungsschnittstellen

Objektorientierte Software-Entwicklung

Architektur interaktiver Systeme

14) Architektur interaktiver Systeme

(C) Sortieren und Suchen mit Java.-AWT Seite 1

70. Programmierung interaktiver Systeme

26) Architektur interaktiver Systeme

2. Programmierung von Benutzungsschnittstellen

Medientechnik. Andreas Butz Ludwig-Maximilians-Universität München Sommersemester Vorlesungskonzept: Heinrich Hußmann

Grundlagen der Programmierung (GP) Prof. Dr. H. Schlingloff Joachim Hänsel

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 7. Grafische Benutzeroberflächen 1

70. Programmierung interaktiver Systeme mit modularen Controllern

Einführung in die Programmierung für NF. Grafische Benutzeroberflächen

70. Programmierung interaktiver Systeme

In Track B generell gute Java-Kenntnisse vorausgesetzt!

GUI-Programmierung. Teil I. Unterlagen zum Modul OOP mit Java V by MOU2/BFH-TI. Berner Fachhochschule Technik und Informatik

Tag 9: Grafische Benutzeroberflächen

EAD II Übung 5. Graphische Benutzungsoberfläche mit BlueJ

2. Programmierung von Benutzungsschnittstellen. 2.1 Modell-Sicht-Paradigma 2.2 Bausteine für grafische Oberflächen 2.3 Ereignisgesteuerte Programme

Kapitel 8: Grafische Benutzerschnittstellen

Was passiert, wenn Button "Ok?" mit Maus angeklickt?

Einführung in die OOP mit Java

In Track B generell gute Java-Kenntnisse vorausgesetzt!

Betreutes Programmieren Vorlesung Informatik II, Blatt 5

Ziele. Kapitel 8: Grafische Benutzerschnittstellen. AWT und Swing. Ziele (2)

Liste Programmieren Java Überblick

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 7. Grafische Benutzeroberflächen

Universität Paderborn Prof. Dr. Stefan Böttcher. Abschluss von Kapitel 2: Programmierung Grafischer Oberflächen mit der Swing-Bibliothek

Benutzeroberflächen. Abstract Windowing Toolkit, Rahmen, Wächter, Ereignisbehandlung, Ausgabe, Menüs.

Seite 1. Kapitel 7: GUI-Rahmenwerk: AWT & Swing. Entwicklungstufen von Benutzerschnittstellen

Programmieren II. Java im Vergleich zu anderen Sprachen. Einführung: GUI. Einführung: Grafische Benutzeroberflächen. Dr.

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik GUI-Programmierung mit Swing

Funktionale und Objekt-Orientierte Programmierkonzepte

Programmiertechnik GUI Programmierung mit Java Swing

Softwaretechnik Programmieren von GUIs mit Swing

Übung Nr. 20 Freitag, 09:00-11:00 Uhr in E3.301

Fakultät Angewandte Informatik Programmierung verteilter Systeme Übungen zur Vorlesung Informatik II, Blatt 8

NTB Druckdatum:

Ziel dieses Kapitels: Einführung in die Grundzüge der Programmierung graphischer Benutzeroberflächen (engl.: "graphical user interface", GUI) in Java

Einführung: Grafische Benutzeroberflächen. Programmieren II. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester / 22

Programmieren II. Events (Ereignisse) Heusch 16.6 (2. Bd) Ratz 15. Institut für Angewandte Informatik

Sommersemester Implementierung III: GUI und Verhalten (Teil 2)

Graphische Benutzungsoberflächen

Computergrafik 2016 Oliver Vornberger. Kapitel 02: Grafische Benutzeroberflächen

Objektorientierte Programmierung

Kapitel 7: GUI-Rahmenwerk: AWT & Swing

Programmieren II. Events (Ereignisse) Heusch 16.6 (2. Bd) Ratz 15. Institut für Angewandte Informatik

Programmieren II. Events (Ereignisse) Heusch 16.6 (2. Bd) Ratz 15. Institut für Angewandte Informatik

Kapitel 7: Ereignis-basierte Kommunikation

JavaFX Beispiel Lights Out (Teil 1: Ansicht)

Instrumentierung und Dekodierung

Heute. Grafische Benutzeroberflächen (Anonyme) innere Klassen Einfache Simulationen main / ausführbare jar-files IT I - VO 11 1

Ereignisverwaltung und Layout-Typen

Softwaretechnik (Medieninformatik): GUIs mit Swing Überblick

Institut für Programmierung und Reaktive Systeme. GUIs mit Swing. Markus Reschke

Grafikprogrammierung mit Java Teil 1/2

Hauptklausur: PRGII MD

Vorlesung Informatik II

Eventhandling. Delegation model Eventhandler model

GUI Programmierung mit JAVA Swing

Medientechnik. Lehr- und Forschungseinheit Medieninformatik

Design Patterns I. Observer, Listener & MVC

Auswahl aus mehreren Alternativen:

Graphische Oberflächen und das Java AWT

Info B VL 11: Innere Klassen/Collections

Medientechnik. Heinrich Hußmann Ludwig-Maximilians-Universität München Sommersemester Prof. Hußmann: Medientechnik. LMU München Sommer 2009

I. Grundlagen II. Ereignistypen III. Ereignisempfänger. Event-Handling (EH)

Eventhandling. Delegation model Eventhandler model

Einstieg in die Informatik mit Java

Medientechnik. Heinrich Hußmann Ludwig-Maximilians-Universität München Sommersemester Prof. Hußmann: Medientechnik. LMU München Sommer 2010

11. GUI-Programmierung mit SWING Überblick

Einige vorgefertigte Layout-Manager:

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

GRAFISCHE BENUTZERSCHNITTSTELLEN

15. Ereignisse (Events)

Graphische Benutzungsoberflächen mit Java. Einführung in NetBeans

Einführung in die Programmierung für NF. Übung

Zentrale Objekte zur Programmierung graphischer Benutzeroberflächen (GUI)

Medientechnik. Übung 3 MVC & Observer

Ereignisse (Events) in Java

Lesen Sie zuerst die Hinweise auf der Rückseite!

J.1. J.1 GUI-Programmierung in in Java Prof. Dr. Rainer Manthey Informatik II 1

Aufgabe 1: Objekte, Klassen, Vererbung (15 Punkte)

Klausur zur Informatik A WS 2001/2002 Name: Korrektor: Punkte: a) Zeichnen Sie zu der nachstehenden Syntax in EBNF die passenden Syntaxdiagramme.

14. Applets. Java-Beispiel: TempApplet.java TempApplet.html. K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16

14. Applets. Java-Beispiel: TempApplet.java. K. Bothe, Inst. f. Informatik, HU Berlin, PI1, WS 2006/07

Transkript:

7. Architektur interaktiver Systeme 7.1 Entkopplung durch Sichten 7.2 Ereignisgesteuerter Programmablauf 7.3 Benutzungsoberflächen 7. Architektur interaktiver Systeme 7.1 Entkopplung durch Sichten 'The night ist istfine', the the Walrus said, said, 'Do 'Do you you admire the the view?' Lewis Carroll Schichtenarchitektur Benutzungsoberfläche Window Button Menu (Fachliches) Modell Teammitglied Teambesprechung Ablaufsteuerung Datenhaltung z.b. relationale Datenbank Seite 1

Sichten: Motivierendes Beispiel Sicht 1 Sicht 2 cf: CounterFrame Modell c: Counter value = 7 Counter ctr + count() + reset() + getvalue() Modell und Sicht Sicht 1 Sicht 2 Methodenaufrufe => Änderungen Modell Benachrichtigung über Änderungen Beispiele: Verschiedene Dokumentenansichten, Statusanzeigen, Verfügbarkeit von Menüpunkten Frage: Wie hält man das Modell unabhängig von den einzelnen Sichten darauf? Muster "Observer" Ein Zähler (Beispiel fachliches Modell) class Counter { private int ctr = 0; public void count () { ctr++; public void reset () { ctr = 0; public int getvalue () { return ctr; Seite 2

Beobachtbares Modell (Model) class Counter extends Observable { private int ctr = 0; public void count () { ctr++; setchanged(); notifyobservers(); public void reset () { ctr = 0; setchanged(); notifyobservers(); public int getvalue () { return ctr; Das fachliche Modell enthält keinerlei Bezug auf die Benutzungsoberfläche! 7. Architektur interaktiver Systeme 7.2 Ereignisgesteuerter Programmablauf I claim not not to tohave controlled events, but but confess plainly that that events have have controlled me. me. Abraham Lincoln, 1864 Ereignisse Definition Ein Ereignis ist ein Vorgang in der Umwelt des Softwaresystems von vernachlässigbarer Dauer, der für das System von Bedeutung ist. Eine wichtige Gruppe von Ereignissen sind Benutzerinteraktionen. Beispiele für Benutzerinteraktions-Ereignisse: Drücken eines Knopfs Auswahl eines Menüpunkts Verändern von Text Zeigen auf ein Gebiet Schließen eines Fensters Verbergen eines Fensters Drücken einer Taste Mausklick Seite 3

Beispiel für Ereignisverarbeitung Das erste Java-Programm in der Vorlesung mit einer "graphischen Benutzungsoberfläche"... Hinweis "für Java-Insider": Hier noch reines "AWT", im nächsten Kapitel wird "Swing" eingeführt werden. Aufgabe: Ein leeres, aber schliessbares Fenster anzeigen Schliessknopf (Fenster geschlossen, Programm beendet) Hinweis: Fensterdarstellung ("look and feel") gemäß Solaris CDE; Schliessknopf in Windows-Darstellung: Ereignis-Klassen Klassen von Ereignissen in (Java-)Benutzungsoberflächen: WindowEvent ActionEvent MouseEvent KeyEvent,... Bezogen auf Klassen für Oberflächenelemente (siehe Kapitel 7.3): Window Frame Button TextField,... Zuordnung (Beispiele): Window (mit Frame) erzeugt WindowEvent» z.b. Betätigung des Schliessknopfes Button erzeugt ActionEvent» bei Betätigung des Knopfes Hauptprogramm für Fensteranzeige import java.awt.*; class ExampleFrame extends Frame { public ExampleFrame () { settitle("untitled"); setsize(150, 50); setvisible(true); class GUI1 { public static void main (String[] argv) { ExampleFrame f = new ExampleFrame(); Seite 4

Registrierung für Listener In java.awt.frame (ererbt von java.awt.window): public class Frame... { public void addwindowlistener (WindowListener l) java.awt.event.windowlistener ist eine Schnittstelle: public interface WindowListener {... Methoden zur Ereignisbehandlung Vergleich mit Observer-Muster: Frame bietet einen "Observable"-Mechanismus Window-Listener ist eine "Observer"-Schnittstelle Hauptprogramm für schließbares Fenster import java.awt.*; import java.awt.event.*; class WindowCloser implements WindowListener {... siehe später... class ExampleFrame extends Frame { public ExampleFrame () { settitle("untitled"); setsize(150, 50); addwindowlistener(new WindowCloser()); setvisible(true); class GUI2 { public static void main (String[] argv) { ExampleFrame f = new ExampleFrame(); Seite 5