Objektorientierte Software-Entwicklung



Ähnliche Dokumente
GRAFISCHE BENUTZERSCHNITTSTELLEN

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

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

GUI Programmierung mit JAVA Swing

Objektorientierte Programmierung

Zentrale Objekte zur Programmierung graphischer Benutzeroberflächen (GUI)

NTB Druckdatum:

Java I Vorlesung 11 Graphische Oberflächen mit Swing

Graphische Benutzungsoberflächen

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

Grundlagen der Programmierung APPLETS

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

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

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

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

Kap. 35 Swing: Grundlagen Kap Swing: Hauptfenster

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

Kapitel 8: Grafische Benutzerschnittstellen

AK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik

Grafische Benutzeroberflächen mit Swing

Einführung in GUI-Programmierung. javax.swing

Javakurs für Fortgeschrittene

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

Einführung in GUI-Programmierung. javax.swing

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

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

Ist eine Softwarekomponente, die dem Benutzer eines Computers die Interaktion mit der Maschine über grafische Symbole erlaubt

Abteilung Informatik, JFC/Swing 2004 Diego Schmidlin V2.2

Aufbau einer typischen Java-Datei

Objektorientierte Softwareentwicklung

1. Konventionelle Ein-/Ausgabebetonte Programmierung

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

Swing :Komponenten I (Teil 2)

Swing Lernen am Code Teil 1

Programmiertechnik GUI Programmierung mit Java Swing

Softwarepraktikum: Enigma

Einstieg in die Informatik mit Java

Einführung in Swing. Graphical User Interface

Hochschule der Medien Prof. Uwe Schulz 14. Juli 2010 Klausur Informatik, EDV-Nr Seite 1 von 5. Teil 2: Aufgaben

7. Architektur interaktiver Systeme

Programmieren 2 Selbststudium Semesterwoche 4

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

Ho Ngoc Duc IFIS - Universität zu Lübeck

Grafikausgabe mit dem Abstract- Windowing-Toolkit. Eine Einführung

...erinnern Sie sich? oopjs4b / kwhbkd4r

GUI Programmierung in Java

Applets. Applets. Applets. Applet: Java-Programm Eingebettet in einer HTML-Seite Ausführung von einem Java-fähigen Web-Browser oder sog.

Graphical User Interfaces

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

GUI-Programmierung in Java

Java Lab 2006/12/13 Client

Benutzeroberflächen. Java Teil 4

Liste Programmieren Java Überblick

2A Basistechniken: Weitere Aufgaben

B1. Ein-/Ausgabebetonte Programmierung

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

Abteilung Informatik, JFC/Swing 2004 Diego Schmidlin V2.2

B1. Ein-/Ausgabebetonte Programmierung

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

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

B1. Ein-/Ausgabebetonte Programmierung

Javakurs für Fortgeschrittene

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

Kapitel 7: Ereignis-basierte Kommunikation

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

GUI Programmierung mit javax.swing

Funktionale und Objekt-Orientierte Programmierkonzepte

Vorlesung 13. Sitzung Grundlegende Programmiertechniken

Softwaretechnik Programmieren von GUIs mit Swing

Ein Manager mit CardLayout layout/cards.java

GUIs in Java und ihre Programmierung

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

Java Design und Event Handling. Natascha Hoebel Professur Prof. R. V. Zicari. AWT SWING Layout Design Event Handling

Tutorial04: Swing: Erstellen eines JFrames mit einem JSplitPane

Java Projekt: Tic Tac Toe + GUI

2. Programmierung von Benutzungsschnittstellen

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

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Vorlesung Informatik II

JAVA Oberflächen mit Swing

Sommersemester Implementierung III: GUI und Verhalten (Teil 2)

Ereignisse (Events) in Java

Nachholklausur (6 ECTS) Einführung in die Informatik: Programmierung und Software-Entwicklung. Nachname... Vorname... Matrikelnummer... Studienfach...

Grafische Benutzeroberflächen

Vorlesung Programmieren. Bisher... Apple Lisa Office System 3.1. GUIs mit Java

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

Kurs OPR. Objektorientierte Programmierung

Programmieren in Java

Swing Grundlagen. Andre Eichmann

Objektorientierte Programmierung. Kapitel 12: Interfaces

Einbindung der Tastatur

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

7. Architektur interaktiver Systeme

Tag 9: Grafische Benutzeroberflächen

Vorlesung Programmieren

Transkript:

Objektorientierte Software-Entwicklung Priv.-Doz. Dr. Rolf Hennicker 08.01.2003

AWT und Swing

AWT (Abstract Window Toolkit) und Swing 2 AWT (Abstract Window Toolkit) und Swing AWT und Swing bieten eine Klassenbibliothek zur Programmierung grafischer Benutzerschnittstellen (GUIs) für Java Programme (Pakete java.awt, javax.swing) Grundidee: plattformunanbhängige Konstruktion von GUIs Entwicklung: AWT 1.0 AWT 1.1 (neues Event-Handling) Swing (ergänzt AWT und ersetzt die meisten AWT-Komponenten durch Lightweight -Komponenten)

AWT (Abstract Window Toolkit) und Swing 3 1. Grundkonzepte des AWT show() Component {abstract peer <<interface>> ComponentPeer show() show() AComponent Toolkit {abstract createacomponent(ac:acomponent):acomponentpeer {abstract <<interface>> AComponentPeer GUI Toolkit MyComponent createacomponent(ac:acomponent):acomponentpeer A GUI Component MyComponent() aneventoccurred(e:anevent) vom Entwickler einer AWT unterstützenden GUI Platform zu entwerfen show() vom Anwendungs Entwickler zu entwerfen

AWT (Abstract Window Toolkit) und Swing 4 Grundkonzepte des AWT (Zusammenfassung) AWT-Komponenten werden von einem Toolkit in entsprechende GUI-Komponenten einer speziellen Plattform ( native components ) übersetzt. Die plattformspezifischen GUI-Komponenten müssen ein entsprechendes Peer-Interface (des AWT) implementieren. Das Peer-Interface beschreibt die Anforderungen an die GUI-Komponente. Soll eine spezielle GUI-Plattform AWT unterstützen, dann muss ein entsprechendes GUI-Toolkit implementiert werden. Die abstrakte Klasse Toolkit (des AWT) beschreibt die Anforderungen an das GUI-Toolkit. Der Anwendungs-Entwickler muss die zur Anwendung gehörigen (plattformunabhängigen) GUI-Komponenten entwerfen.

AWT (Abstract Window Toolkit) und Swing 5 2. Komponenten-Hierarchie von AWT/Swing Component {abstract * Container {abstract setlayout(m: LayoutManager) add(c: Component) add(c: Component, location: String) 1 <<interface>> LayoutManager Window Panel JComponent {abstract Frame Dialog Applet JPanel AbstractButton JLabel JFrame JDialog JWindow JApplet JButton getcontentpane():container BorderLayout FlowLayout GridLayout CardLayout GridBagLayout

AWT (Abstract Window Toolkit) und Swing 6 Komponenten-Hierarchie (Zusammenfassung) Alle mit J beginnenden Klassen (und einige weitere) gehören zu Swing. In Swing werden unterschieden: Heavyweight-Komponenten (JFrame, JDialog, JWindow, JApplet) Lightweight-Komponenten (alle Spezialisierungen von JComponent) Heavyweight-Komponenten werden (wie AWT-Komponenten) in native Komponenten einer konkreten GUI-Plattform übersetzt. Heavyweight-Komponenten haben einen Container (Zugriff mit getcontentpane ), in dem die Lightweight-Komponenten gezeichnet werden. Jeder Container besitzt einen Layout-Manager. Mit add können neue Komponenten zu einem Container hinzugefügt werden (entsprechend des eingestellten Layout-Managers).

AWT (Abstract Window Toolkit) und Swing 7 3. Ereignisbehandlung in AWT <<interface>> AListener +aneventoccured(e: AnEvent) AComponent * AnEventSource MyComponent +addalistener(l: AListener) +MyComponent() +aneventoccurred(e:anevent)

AWT (Abstract Window Toolkit) und Swing 8 Ereignisbehandlung (Zusammenfassung) In AWT werden 10 verschiedene Ereignisklassen unterschieden: KeyEvent, MouseEvent, ActionEvent, WindowEvent, Ist eine Komponente an Ereignissen eines bestimmten Typs interessiert, dann muss sie: 1. sich bei der Komponente, in der ein solches Ereignis auftreten kann (AnEventSource) als Listener registrieren (addlistener). 2. die beim Eintritt eines solchen Ereignisses aufgerufene Operation (aneventoccured) der passenden Listener-Schnittstelle (AListener) implementieren. Listener-Schnittstellen sind z.b. KeyListener, MouseListener, ActionListener, WindowListener. Operationen von Listener-Schnittstellen sind z.b. actionperformed(von ActionListener), windowclosing (von WindowListener).

AWT (Abstract Window Toolkit) und Swing 9 4. GUI-Modellierung: Ein einfaches Beispiel <<interface>> ActionListener JFrame Container {abstract +actionperformed(event: ActionEvent) * +getcontentpane(): Container +settitle(s: String) +setsize(a: Real, b: Real) +add(c: Component, location: String) {geerbte Assoziation JButton +JButton(s: String) +addactionlistener(l: ActionListener) {geerbt von AbstractButton 1 stopbutton +MyFrame() MyFrame +actionperformed(event: ActionEvent) settitle("test Frame"); setsize(100, 100); stopbutton = new JButton("Beenden"); Container cont = getcontentpane(); cont.add(stopbutton, "South"); stopbutton.addactionlistener(this); System.exit(0); MyGUI +main(args: String[]) MyFrame frame = new MyFrame(); frame.show();

AWT (Abstract Window Toolkit) und Swing 10 import java.awt.*; import java.awt.event.*; import javax.swing.*; class GUIBeispiel { public static void main (String[] args) { MyFrame frame = new MyFrame(); frame.show();

AWT (Abstract Window Toolkit) und Swing 11 class MyFrame extends JFrame implements ActionListener { private JButton stopbutton; public MyFrame() { setsize(200,200); settitle("testframe"); stopbutton = new JButton("Beenden"); Container cont = getcontentpane(); cont.add(stopbutton, "South"); stopbutton.addactionlistener(this); public void actionperformed(actionevent e) { System.exit(0);

AWT (Abstract Window Toolkit) und Swing 12 Bemerkung Damit das Programm auch ordnungsgemäß durch Schließen des Fensters beendet werden kann, ist die Operation windowclosing des WindowListener-Interfaces entsprechend zu implementieren. GUI-Beispiel mit WindowCloser: import java.awt.*; import java.awt.event.*; import javax.swing.*; class GUIBeispielMitWindowCloser { public static void main (String[] args) { MyFrame frame = new MyFrame(); frame.show();

AWT (Abstract Window Toolkit) und Swing 13 class MyFrame extends JFrame implements ActionListener { private JButton stopbutton; public MyFrame() { setsize(200,200); settitle("testframe"); stopbutton = new JButton("Beenden"); Container cont = getcontentpane(); cont.add(stopbutton, "South"); stopbutton.addactionlistener(this); this.addwindowlistener(new WindowCloser()); public void actionperformed(actionevent e) { System.exit(0);

AWT (Abstract Window Toolkit) und Swing 14 /* WindowCloser ist hier eine innere Klasse, die die AWT-Klasse WindowAdapter erweite WindowAdapter implementiert alle Operationen des WindowListener-Interface durch Dummy-Implementierungen. */ private class WindowCloser extends WindowAdapter { public void windowclosing(windowevent event) { System.exit(0); MMISS: Kurztitel, January 7, 2003