5. Tutorium zu Softwaretechnik I

Ähnliche Dokumente
Klausur Softwaretechnik

GUI Programmierung mit JAVA Swing

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

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

Swing Lernen am Code Teil 1

Funktionale und Objekt-Orientierte Programmierkonzepte

Kapitel X - Grafische Benutzeroberflächen mit Java und Swing

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

04 - Actions. Actions

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

Objektorientierte Software-Entwicklung

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

Grafische Benutzeroberflächen

Zentrale Objekte zur Programmierung graphischer Benutzeroberflächen (GUI)

JLabel. dient zur Textanzeige. können auch Bilder anzeigen: mylabel.seticon( new ImageIcon( C:/Pfad/zum/Bild.jpg )

Javakurs für Fortgeschrittene

Einführung in GUI-Programmierung. javax.swing

Entwurfsmuster. Tutorium 7 iloveswt.de Fabian I. Miltenberger INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD)

Klausur Softwaretechnik Prof. Dr. Walter F. Tichy Dipl.-Inform. T. Gelhausen Dipl.-Inform. G. Malpohl. Musterlösung

Objektorientierte Programmierung

Grafische Benutzeroberflächen

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

Aufbau einer typischen Java-Datei

Java GUI Entwicklung mit Swing

Grafische Benutzeroberflächen

Institut für Informatik

Rückblick Themen Erste GUI-Anwendung Praktikum. Rückblick Themen Erste GUI-Anwendung Praktikum. Rückblick Themen Erste GUI-Anwendung Praktikum

...erinnern Sie sich? oopjs4b / kwhbkd4r

Programmiertechnik GUI Programmierung mit Java Swing

Objektorientierte und Funktionale Programmierung SS 2014

Medientechnik. Übung 2 Java Swing

Rückblick Themen Erste GUI-Anwendung Praktikum. Rückblick Themen Erste GUI-Anwendung Praktikum. Rückblick Themen Erste GUI-Anwendung Praktikum

KLAUSUR SOFTWARETECHNIK I

Sommersemester Implementierung III: GUI und Verhalten (Teil 2)

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 in GUI-Programmierung. javax.swing

Universität Karlsruhe (TH) Kapitel X Grafische Benutzeroberflächen mit Java und Swing

Probeklausur: Programmierung WS04/05

Tutorial04: Swing: Erstellen eines JFrames mit einem JSplitPane

Java I Vorlesung 11 Graphische Oberflächen mit Swing

Grafische Benutzeroberflächen mit Swing

/** Main-Methode erzeugt einen neuen Editor zum Testen */ public static void main(string[] args) { new Editor();

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

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

Institut für Programmierung und Reaktive Systeme 17. Juli Programmieren II. Übungsklausur

GUI Programmierung mit javax.swing

Probeklausur Informatik 2 Sommersemester 2013

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Fachhochschule Stuttgart Prof. Uwe Schulz 5. Juli 2006 Hochschule der Medien Klausur Informatik, EDV-Nr (42021) Seite 1 von 4

Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster

Swing : Komponeneten I (Teil 1) Was ist Swing?

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

Entwurfsmuster Entkopplungs-, Varianten- und Zustandsmuster

Einführung in die Informatik II

DHBW Karlsruhe, Vorlesung Programmieren, Events Musterlösung

Strategie. (Strategy. / Policy) Ein objektbasiertes Verhaltensmuster. Stephan Munkelt, Stefan Salzmann - 03IN

14 Swing-Komponenten , Prof. Dr. D. Ratz

Einführung in Swing. Graphical User Interface

5. Java Swing Grundlagen der Programmierung II (Java) Prof. Dr. Bernhard Humm Hochschule Darmstadt University of Applied Sciences Sommersemester 2006

Objektorientierte Softwareentwicklung

Algorithmen und Datenstrukturen 07

import java.awt.*; import java.awt.event.*; import javax.swing.*;

Klausur: Java (Liste P)

2. Programmierung von Benutzungsschnittstellen

Lösungen. 1. Aufgabe. // ActionExample.java import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.

JButton, JCheckBox, JRadioButton. Programmieren II. Vorlesung 7. Handout S. 1. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester 2009.

AK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik

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

Transkript:

5. Tutorium zu Softwaretechnik I JMJRST, Entwurfsmuster, Swing Michael Hoff 20.06.2013 INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

3. Übungsblatt Michael Hoff 5. Tutorium 20.06.2013 2/42

Übersicht 1 Entwurfsmuster Strategie Kompositum Dekorierer Beobachter 2 Swing Container Layout ActionListener 3 Abschluss Michael Hoff 5. Tutorium 20.06.2013 3/42

JMJRST - Zielsetzung Erstellung eines Lastenhefts und einer Durchführbarkeitsuntersuchung für eine Software zur Bildduplikatreduktion. Entwurf und Implementierung histogrammbasierter Bildähnlichkeit. Anwendungsfallmodellierung und hierarchische Clusteranalyse in Form eines Dendrogramms. Implementierung von Bewertungskriterien für die Güte von Bildern. Generierung einer grafischen Benutzeroberfläche. Beschleunigung durch Ausnutzung von Parallelität. Michael Hoff 5. Tutorium 20.06.2013 4/42

Entwurfsmuster 2.0 Michael Hoff 5. Tutorium 20.06.2013 5/42

Strategie Zweck Definiere eine Familie von Algorithmen, kapsele sie und mache sie austauschbar. Das Strategiemuster ermöglicht es, den Algorithmus unabhängig von nutzenden Klienten zu variieren. Anwendbarkeit Wenn sich viele verwandte Klassen nur in ihrem Verhalten unterscheiden. Strategieobjekte bieten die Möglichkeit, eine Klasse mit einer von mehreren möglichen Verhaltensweisen zu konfigurieren. Wenn unterschiedliche Varianten eines Algorithmus benötigt werden. Michael Hoff 5. Tutorium 20.06.2013 6/42

Strategie - Abstrakte Struktur Michael Hoff 5. Tutorium 20.06.2013 7/42

Kompositum Zweck Füge Objekte zu Baumstrukturen zusammen, um Bestands-Hierarchien zu repräsentieren. Das Muster ermöglicht es Klienten, sowohl einzelne Objekte als auch Aggregate einheitlich zu behandeln. Anwendbarkeit Wenn Bestands-Hierarchien von Objekten repräsentiert werden sollen. Wenn die Klienten in der Lage sein sollen, die Unterschiede zwischen zusammengesetzten und einzelnen Objekten zu ignorieren. Michael Hoff 5. Tutorium 20.06.2013 8/42

Kompositum - Struktur Michael Hoff 5. Tutorium 20.06.2013 9/42

Dekorierer Michael Hoff 5. Tutorium 20.06.2013 10/42

Aufgabe 4: Entwurfsmuster (10P) Gegeben sei folgendes Programm (S.o.p steht für System.out.println): import java.util.*; abstract class Tee { protected boolean gezogen = false; public abstract void ziehen(); // Ende der Klasse Tee class Schwarztee extends Tee { public void ziehen() { S.o.p("Der Schwarztee zieht."); gezogen = true; // Ende der Klasse Schwarztee class GruenerTee extends Tee { public void ziehen() { S.o.p("Der grüne Tee zieht."); gezogen = true; // Ende der Klasse GruenerTee class Chai extends Tee { private Tee basistee; private List<String> zutaten = new ArrayList<String>(); public Chai(Tee grundlage) { if (grundlage==null) throw new IllegalArgumentException(); basistee = grundlage; zutaten.add("lorbeerblatt"); zutaten.add("zimtstange"); zutaten.add("ingwer"); zutaten.add("honig"); zutaten.add("milch"); zutaten.add("vanilleschote"); public void ziehen() { basistee.ziehen(); for (String z : zutaten) { S.o.p(z + " zieht"); S.o.p("Chai zieht"); S.o.p("Tee zieht mit Chai"); gezogen = true; // Ende der Klasse Chai class Test { public static void main (String[] a) { Tee t = new Schwarztee(); Tee chai = new Chai(t); chai.ziehen(); // Ende der Klasse Test a.) Welches Entwurfsmuster wird hier verwendet? ( Oberklasse ist nicht gemeint!) Begründen Sie Ihre Antwort. (2P) Dekorierer (oder: Stellvertreter) 1 P Kompositum: 0 P Begründung: Schnittstelle wird beibehalten, Kernfunktionalität Michael Hoff 5. Tutorium 20.06.2013 11/42

Gegeben sei folgendes Programm (S.o.p steht für System.out.println): import java.util.*; abstract class Tee { protected boolean gezogen = false; public abstract void ziehen(); // Ende der Klasse Tee class Schwarztee extends Tee { public void ziehen() { S.o.p("Der Schwarztee zieht."); gezogen = true; // Ende der Klasse Schwarztee class GruenerTee extends Tee { public void ziehen() { S.o.p("Der grüne Tee zieht."); gezogen = true; // Ende der Klasse GruenerTee class Chai extends Tee { private Tee basistee; private List<String> zutaten = new ArrayList<String>(); public Chai(Tee grundlage) { if (grundlage==null) throw new IllegalArgumentException(); basistee = grundlage; zutaten.add("lorbeerblatt"); zutaten.add("zimtstange"); zutaten.add("ingwer"); zutaten.add("honig"); zutaten.add("milch"); zutaten.add("vanilleschote"); public void ziehen() { basistee.ziehen(); for (String z : zutaten) { S.o.p(z + " zieht"); S.o.p("Chai zieht"); S.o.p("Tee zieht mit Chai"); gezogen = true; // Ende der Klasse Chai class Test { public static void main (String[] a) { Tee t = new Schwarztee(); Tee chai = new Chai(t); chai.ziehen(); // Ende der Klasse Test a.) Welches Entwurfsmuster wird hier verwendet? ( Oberklasse ist nicht gemeint!) Begründen Sie Ihre Antwort. (2P) Dekorierer 1 P Kompositum: 0 P Begründung: Schnittstelle wird beibehalten, Kernfunktionalität erhalten, verwendet und ergänzt, Kaskadierbarkeit (1P) b.) Geben Sie an, welche Klasse welche Rolle des Entwurfsmusters einnimmt. (1P) Michael Hoff 5. Tutorium Chai: Dekorierer 0,5 P 20.06.2013 12/42

Aufgabe 4: Entwurfsmuster (10P) Gegeben sei folgendes Programm (S.o.p steht für System.out.println): import java.util.*; abstract class Tee { protected boolean gezogen = false; public abstract void ziehen(); // Ende der Klasse Tee class Schwarztee extends Tee { public void ziehen() { S.o.p("Der Schwarztee zieht."); gezogen = true; // Ende der Klasse Schwarztee class GruenerTee extends Tee { public void ziehen() { S.o.p("Der grüne Tee zieht."); gezogen = true; // Ende der Klasse GruenerTee class Chai extends Tee { private Tee basistee; private List<String> zutaten = new ArrayList<String>(); public Chai(Tee grundlage) { if (grundlage==null) throw new IllegalArgumentException(); basistee = grundlage; zutaten.add("lorbeerblatt"); zutaten.add("zimtstange"); zutaten.add("ingwer"); zutaten.add("honig"); zutaten.add("milch"); zutaten.add("vanilleschote"); public void ziehen() { basistee.ziehen(); for (String z : zutaten) { S.o.p(z + " zieht"); S.o.p("Chai zieht"); S.o.p("Tee zieht mit Chai"); gezogen = true; // Ende der Klasse Chai class Test { public static void main (String[] a) { Tee t = new Schwarztee(); Tee chai = new Chai(t); chai.ziehen(); // Ende der Klasse Test b.) Geben Sie an, welche Klasse welche Rolle des Entwurfsmusters einnimmt. (1P) Michael Hoff 5. Tutorium 20.06.2013 13/42

Gegeben sei folgendes Programm (S.o.p steht für System.out.println): import java.util.*; abstract class Tee { protected boolean gezogen = false; public abstract void ziehen(); // Ende der Klasse Tee class Schwarztee extends Tee { public void ziehen() { S.o.p("Der Schwarztee zieht."); gezogen = true; // Ende der Klasse Schwarztee class GruenerTee extends Tee { public void ziehen() { S.o.p("Der grüne Tee zieht."); gezogen = true; // Ende der Klasse GruenerTee class Chai extends Tee { private Tee basistee; private List<String> zutaten = new ArrayList<String>(); public Chai(Tee grundlage) { if (grundlage==null) throw new IllegalArgumentException(); basistee = grundlage; zutaten.add("lorbeerblatt"); zutaten.add("zimtstange"); zutaten.add("ingwer"); zutaten.add("honig"); zutaten.add("milch"); zutaten.add("vanilleschote"); public void ziehen() { basistee.ziehen(); for (String z : zutaten) { S.o.p(z + " zieht"); S.o.p("Chai zieht"); S.o.p("Tee zieht mit Chai"); gezogen = true; // Ende der Klasse Chai class Test { public static void main (String[] a) { Tee t = new Schwarztee(); Tee chai = new Chai(t); chai.ziehen(); // Ende der Klasse Test b.) Geben Sie an, welche Klasse welche Rolle des Entwurfsmusters einnimmt. (1P) Chai: Dekorierer 0,5 P Tee: Subjekt oder Komponente GruenerTee und Schwarztee: echtes Subjekt, konkrete Komponente, dekoriertes Objekt oder Blatt Michael Hoff 5. Tutorium 20.06.2013 14/42

Aufgabe 4: Entwurfsmuster (10P) Gegeben sei folgendes Programm (S.o.p steht für System.out.println): import java.util.*; abstract class Tee { protected boolean gezogen = false; public abstract void ziehen(); // Ende der Klasse Tee basistee = grundlage; zutaten.add("lorbeerblatt"); zutaten.add("zimtstange"); zutaten.add("ingwer"); zutaten.add("honig"); zutaten.add("milch"); zutaten.add("vanilleschote"); class Schwarztee extends Tee { public void ziehen() { S.o.p("Der Schwarztee zieht."); gezogen = true; // Ende der Klasse Schwarztee class GruenerTee extends Tee { public void ziehen() { S.o.p("Der grüne Tee zieht."); gezogen = true; // Ende der Klasse GruenerTee class Chai extends Tee { private Tee basistee; private List<String> zutaten = new ArrayList<String>(); c.) public Chai(Tee grundlage) { if (grundlage==null) throw new IllegalArgumentException(); public void ziehen() { basistee.ziehen(); for (String z : zutaten) { S.o.p(z + " zieht"); S.o.p("Chai zieht"); S.o.p("Tee zieht mit Chai"); gezogen = true; // Ende der Klasse Chai class Test { public static void main (String[] a) { Tee t = new Schwarztee(); Tee chai = new Chai(t); chai.ziehen(); // Ende der Klasse Test Geben Sie das UML-Klassendiagramm des hinter dem Code stehenden Modells an. Ihr Diagramm soll alle Klassen (außer der Klasse Test ) mit allen Attributen, Methoden (incl. Sichtbarkeit etc.) und Assoziationen enthalten. (3P) Hinweis: Achten Sie darauf, Attribute und Assoziationen nicht zu verwechseln! Michael Hoff 5. Tutorium 20.06.2013 15/42

Tee {abstract #gezogen: boolean +ziehen(): void {abstract 1 basistee Schwarztee +ziehen(): void GruenerTee +ziehen(): void Chai -zutaten: List<String> +Chai(grundlage: Tee): Chai +ziehen(): void Punkte sammeln: Alle Attribute und Methoden eingetragen: 0,5 P Sichtbarkeiten immer richtig: 0,5 P Klasse Tee und Methode ziehen in Tee {abstract und Methode ziehen in allen Unterklassen nichtabstrakt überschrieben: 0,5 P Vererbungsbeziehungen richtig: 0,5 P Assoziation vorhanden: 0,5 P Assoziation korrekt attributiert: 0,5 P Abzug für: GruenerTee oder Schwarztee vergessen: -0,5 P Michael Hoff 5. Tutorium 20.06.2013 16/42 *

Beobachter Michael Hoff 5. Tutorium 20.06.2013 17/42

Beobachter Zweck Definiert eine 1-zu-n Abhängigkeit zwischen Objekten, so dass die Änderung eines Zustandes eines Objektes dazu führt, dass alle abhängigen Objekte benachrichtigt und automatisch aktualisiert werden. Anwendbarkeit Wenn die Änderung eines Objekts die Änderung anderer Objekte verlangt und man nicht weiß, wie viele und welche Objekte geändert werden müssen. Wenn ein Objekt andere Objekte benachrichtigen muss, ohne Annahmen über diese Objekte zu treffen. Michael Hoff 5. Tutorium 20.06.2013 18/42

Beobachter - Struktur? Michael Hoff 5. Tutorium 20.06.2013 19/42

Beobachter - Struktur Subjekt meldean(:beobachter) meldeab(:beobachter) benachrichtige() beobachter 1 * für alle b in beobachter { b.aktualisiere() Beobachter aktualisiere() KonkreterBeobachter KonkretesSubjekt subjektzustand subjekt beobachterzustand aktualisiere() beobachterzustand = subjekt.gibzustand() gibzustand() setzezustand() return subjektzustand 31 Kapitel 3.5 - Entwurfsmuster Michael Hoff 5. Tutorium 20.06.2013 20/42

Beobachter: Interaktionsdiagramm Beobachter - Ablauf :KonkretesSubjekt :KonkreterBeobachter :KonkreterBeobachter setzezustand() benachrichtige() aktualisiere() gibzustand() aktualisiere() gibzustand() 32 Kapitel 3.5 - Entwurfsmuster Michael Hoff 5. Tutorium 20.06.2013 21/42

Beobachter - Beispiel Michael Hoff 5. Tutorium 20.06.2013 22/42

obachter: Beispiel Model View Controller Fenster Beobachter Fenster Fenster x y z a 60 50 80 b 30 30 10 c 10 20 10 a b c Kapitel 3.5 - Entwurfsmuster a=50% b=30% c=20% Subjekt Benachrichtigung über Änderung Anfragen, Veränderungen Michael Hoff 5. Tutorium 20.06.2013 23/42

Beobachter in Swing: ActionListener Javadoc-Beschreibung The listener interface for receiving action events. The class that is interested in processing an action event implements this interface, and the object created with that class is registered with a component, using the component s addactionlistener method. When the action event occurs, that object s actionperformed method is invoked. Werden üblicherweise genutzt, um auf Benutzeraktionen über Steuerelemente zu reagieren GUI-Klassen registrieren sich bei den Steuerelementen und werden so über Events informiert Michael Hoff 5. Tutorium 20.06.2013 24/42

Swing Michael Hoff 5. Tutorium 20.06.2013 25/42

CheckBox (AWT) Component (AWT) Container (AWT) add(component); JComponent Panel (AWT) Window (AWT) 20 Kapitel X - Grafische Benutzeroberflächen mit Java und Swing Michael Hoff 5. Tutorium 20.06.2013 26/42

Component JButton JCheckBoxMenuItem JMenu Container AbstractButton JMenuItem JRadioButtonMenuItem JComponent JComboBox JLabel JToggleButton JCheckBox JRadioButton JList JEditorPane JTextPane JTextComponent JTextArea JTextField JPasswordField Pakete: java.awt.* java.swing.* 44 Kapitel X - Grafische Benutzeroberflächen mit Java und Swing Michael Hoff 5. Tutorium 20.06.2013 27/42

Aufbau von Dialogen f : JFrame f.getcontentpane() : Container (eigentlich ein JPanel) JLabel JButton JTextField Auch ein JPanel Noch ein JPanel 17 Kapitel X - Grafische Benutzeroberflächen mit Java und Swing Michael Hoff 5. Tutorium 20.06.2013 28/42

Michael Hoff 5. Tutorium 20.06.2013 29/42

Michael Hoff 5. Tutorium 20.06.2013 30/42

Michael Hoff 5. Tutorium 20.06.2013 31/42

Michael Hoff 5. Tutorium 20.06.2013 32/42

Neues Ereignis Nächstes, zu verarbeitendes Ereignis S: JButton Title = Schaltfläche Beobachter klick: ActionListener Klick! Ereignis Rest der Ereignisliste :ActionEvent Quelle void actionperformed (ActionEvent e) { System.exit(0); Reaktormethode 30 Kapitel X - Grafische Benutzeroberflächen mit Java und Swing Michael Hoff 5. Tutorium 20.06.2013 33/42

Importieren der benötigten Pakete import java.awt.event.*; import javax.swing.*; public class HalloWelt extends JFrame { public HalloWelt() { super("hallo Welt!"); JButton schaltflaeche = new JButton("01 + 01 =?"); schaltflaeche.addactionlistener(new ActionListener() { public void actionperformed(actionevent e) { JOptionPane.showMessageDialog(null, "01 + 01 = 10", "Antwort:", JOptionPane.QUESTION_MESSAGE); ); this.add(schaltflaeche); this.setdefaultcloseoperation(exit_on_close); this.pack(); public static void main(string[] args) { HalloWelt fenster = new HalloWelt(); fenster.setvisible(true); Erben von der Hauptfensterklasse Konstruktor von JFrame mit Titel des Fensters aufrufen. Erstellen einer Schaltfläche mit der angegebenen Beschriftung. Angeben, was bei einer Aktion auf der Schaltfläche passieren soll. Schaltfläche zum Fenster hinzufügen. Aktion angeben, die beim Schließen des Fensters ausgelöst werden soll. Fenstergröße anpassen, Anordnung der Komponenten an Fenstergröße anpassen. Zeigt das erstellte Fenster an. Michael Hoff 5. Tutorium 20.06.2013 34/42

AUFGABE 3: SWING (10 P) Gegeben sei folgende Skizze eines Fensters einer Java-Anwendung: Donnervogel Adressen Datei Bearbeiten Hilfe Ärzte Über Donnervogel Nachname Vorname Anschrift Familie Versionshinweise Laffer Larry Lefty s Bar Freizeit Threepwood Guybrush U. Karibik Geschäftlich Speichern Beenden Schreiben Sie in die gestrichelten Kästchen, um welche konkreten Swing-Benutzeroberflächenelemente es sich handelt. In die größeren, geteilten Kästchen tragen Sie bitte auch den verwendeten LayoutManager ein. Klausur Softwaretechnik 1 Sommersemester 2009 Seite 5 von 13 Michael Hoff 5. Tutorium 20.06.2013 35/42

AUFGABE 3: SWING (10 P) Gegeben sei folgende Skizze eines Fensters einer Java-Anwendung: JMenu JMenuItem Donnervogel Adressen Datei Bearbeiten Hilfe Ärzte Familie Freizeit Geschäftlich Über Donnervogel Nachname Vorname Anschrift Versionshinweise Laffer Larry Lefty s Bar Threepwood Guybrush U. Karibik JMenuBar JPanel/JFrame BorderLayout JTable JList Speichern Beenden JPanel FlowLayout JButton Schreiben Sie in die gestrichelten Kästchen, um welche konkreten Swing-Benutzeroberflächenelemente es sich handelt. In die größeren, geteilten Kästchen tragen Sie bitte auch den verwendeten LayoutManager ein. EntwurfsmusterKlausur Softwaretechnik 1 Sommersemester Swing 2009 Seite 5 von 13 Abschluss Michael Hoff 5. Tutorium 20.06.2013 36/42

Weitere Entwurfsmuster Michael Hoff 5. Tutorium 20.06.2013 37/42

Prüfungsfragen Michael Hoff 5. Tutorium 20.06.2013 38/42

Prüfungsfragen Schnittstellen können Implementierungsdetails vererben. Michael Hoff 5. Tutorium 20.06.2013 39/42

Prüfungsfragen Schnittstellen können Implementierungsdetails vererben. Michael Hoff 5. Tutorium 20.06.2013 39/42

Prüfungsfragen Schnittstellen können Implementierungsdetails vererben. Das Entwurfsmuster Strategie bietet die Möglichkeit, eine Klasse mit einer von mehreren möglichen Verhaltensweisen zu konfigurieren. Michael Hoff 5. Tutorium 20.06.2013 39/42

Prüfungsfragen Schnittstellen können Implementierungsdetails vererben. Das Entwurfsmuster Strategie bietet die Möglichkeit, eine Klasse mit einer von mehreren möglichen Verhaltensweisen zu konfigurieren. Michael Hoff 5. Tutorium 20.06.2013 39/42

Prüfungsfragen Schnittstellen können Implementierungsdetails vererben. Das Entwurfsmuster Strategie bietet die Möglichkeit, eine Klasse mit einer von mehreren möglichen Verhaltensweisen zu konfigurieren. Die Signatur einer Methode besteht in Java aus dem Methodennamen, der Parameterliste und dem Rückgabetyp. Michael Hoff 5. Tutorium 20.06.2013 39/42

Prüfungsfragen Schnittstellen können Implementierungsdetails vererben. Das Entwurfsmuster Strategie bietet die Möglichkeit, eine Klasse mit einer von mehreren möglichen Verhaltensweisen zu konfigurieren. Die Signatur einer Methode besteht in Java aus dem Methodennamen, der Parameterliste und dem Rückgabetyp. Michael Hoff 5. Tutorium 20.06.2013 39/42

Prüfungsfragen Schnittstellen können Implementierungsdetails vererben. Das Entwurfsmuster Strategie bietet die Möglichkeit, eine Klasse mit einer von mehreren möglichen Verhaltensweisen zu konfigurieren. Die Signatur einer Methode besteht in Java aus dem Methodennamen, der Parameterliste und dem Rückgabetyp. Nicht-funktionale Anforderungen sind sowohl Teil des Pflichtenhefts als auch des Lastenhefts. Michael Hoff 5. Tutorium 20.06.2013 39/42

Prüfungsfragen Schnittstellen können Implementierungsdetails vererben. Das Entwurfsmuster Strategie bietet die Möglichkeit, eine Klasse mit einer von mehreren möglichen Verhaltensweisen zu konfigurieren. Die Signatur einer Methode besteht in Java aus dem Methodennamen, der Parameterliste und dem Rückgabetyp. Nicht-funktionale Anforderungen sind sowohl Teil des Pflichtenhefts als auch des Lastenhefts. Michael Hoff 5. Tutorium 20.06.2013 39/42

Prüfungsfragen Schnittstellen können Implementierungsdetails vererben. Das Entwurfsmuster Strategie bietet die Möglichkeit, eine Klasse mit einer von mehreren möglichen Verhaltensweisen zu konfigurieren. Die Signatur einer Methode besteht in Java aus dem Methodennamen, der Parameterliste und dem Rückgabetyp. Nicht-funktionale Anforderungen sind sowohl Teil des Pflichtenhefts als auch des Lastenhefts. Auf ein private-attribut eines Exemplars einer Klasse kann nur das Exemplar selber zugreifen. Michael Hoff 5. Tutorium 20.06.2013 39/42

Prüfungsfragen Schnittstellen können Implementierungsdetails vererben. Das Entwurfsmuster Strategie bietet die Möglichkeit, eine Klasse mit einer von mehreren möglichen Verhaltensweisen zu konfigurieren. Die Signatur einer Methode besteht in Java aus dem Methodennamen, der Parameterliste und dem Rückgabetyp. Nicht-funktionale Anforderungen sind sowohl Teil des Pflichtenhefts als auch des Lastenhefts. Auf ein private-attribut eines Exemplars einer Klasse kann nur das Exemplar selber zugreifen. Michael Hoff 5. Tutorium 20.06.2013 39/42

Prüfungsfragen Schnittstellen können Implementierungsdetails vererben. Das Entwurfsmuster Strategie bietet die Möglichkeit, eine Klasse mit einer von mehreren möglichen Verhaltensweisen zu konfigurieren. Die Signatur einer Methode besteht in Java aus dem Methodennamen, der Parameterliste und dem Rückgabetyp. Nicht-funktionale Anforderungen sind sowohl Teil des Pflichtenhefts als auch des Lastenhefts. Auf ein private-attribut eines Exemplars einer Klasse kann nur das Exemplar selber zugreifen. In Java ist Swing die einzige mitgelieferte GUI-Schnittstelle. Michael Hoff 5. Tutorium 20.06.2013 39/42

Prüfungsfragen Schnittstellen können Implementierungsdetails vererben. Das Entwurfsmuster Strategie bietet die Möglichkeit, eine Klasse mit einer von mehreren möglichen Verhaltensweisen zu konfigurieren. Die Signatur einer Methode besteht in Java aus dem Methodennamen, der Parameterliste und dem Rückgabetyp. Nicht-funktionale Anforderungen sind sowohl Teil des Pflichtenhefts als auch des Lastenhefts. Auf ein private-attribut eines Exemplars einer Klasse kann nur das Exemplar selber zugreifen. In Java ist Swing die einzige mitgelieferte GUI-Schnittstelle. Michael Hoff 5. Tutorium 20.06.2013 39/42

Fragen? Michael Hoff 5. Tutorium 20.06.2013 40/42

Aktuelles Übungsblatt Michael Hoff 5. Tutorium 20.06.2013 41/42

Ende Michael Hoff 5. Tutorium 20.06.2013 42/42