Universität zu Lübeck Institut für Informationssysteme Die Präsentationsschicht - mit Swing.

Slides:



Advertisements
Ähnliche Präsentationen
programmiert April-Juni 2003 von Knut Riechmann
Advertisements

Strategie (Strategy / Policy) Ein objektbasiertes Verhaltensmuster Stephan Munkelt, Stefan Salzmann - 03IN.
Ein Beispiel in Java.
Java – Swing Vortrag von Raphaela Wrede und Anja Jentzsch
Praktikum Systementwicklung
Ausnahmen HS Merseburg (FH) WS 06/07.
Java: Programmierung grafischer Oberflächen
Threads Richard Göbel.
Java: Programmierung grafischer Oberflächen
Java: Dynamische Datentypen
Einfache Komponenten in SWING
MVC.
AUFGABE 1: Ein Wagen (dargestellt durch ein Rechteck) soll sich von links nach rechts bewegen. Tipp: Timer benutzen AUFGABE 2: Zusätzlich zu Aufgabe.
Grafische Benutzeroberfläche
Wie überwacht man Objekte im "Alltag" ?. Indem man "Wanzen" an diese anbringt.
Ein Beispiel in Java.
Benötigte Applets Startseite: in HTML-Format Applet auf der Startseite Das Applet, das auf der Startseite geladen wird, wird die vier Buttons und die eine.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 6 Model-View-Controler als Grundlage für Nutzerschnittstellen Sommersemester 2003 Lars Bernard.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 7 User Interfaces in Java Sommersemester 2003 Lars Bernard.
AWT – Detailbetrachtung Java 3D – Seminar im Wintersemester 2002/2003 Christian Schneider.
Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. Dirk Dörschlag Einführung in die Programmierung mit.
Programmieren mit JAVA
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
1DVG3 - Eventbehandlung Eventbehandlung. DVG3 - Eventbehandlung 2 Events Events sind externe Ereignisse, die parallel zum normalen Programmablauf auftreten.
DVG Swing1 SWING. DVG Swing2 ColorChooser Die Klasse JColorChooser bietet eine komfortable Möglichkeit, Farben auszuwählen. Konstruktor:
EDV Swing1 Swing. EDV Swing 2 Swing - AWT AWT passt sein L&F der Umgebung automatisch an. Swing kann sein L&F selbst verändern, auch zur.
07-GraphischeObjekte Graphische Objekte in EMMA301Paint.
SWING DVG Swing.
DVG Klassen und Objekte
SWING DVG Swing.
04 - Actions Actions Actions 2 Motivation In verschiedenen Swing-Komponenten werden ausgelöste Aktionen durch ActionListener behandelt. Häufig werden.
DVG Swing SWING. DVG Swing 2 ColorChooser Die Klasse JColorChooser bietet eine komfortable Möglichkeit, Farben auszuwählen. Konstruktor:
06-EMMA-GUI Das EMMA-GUI. 06-EMMA-GUI 2 Aufteilung des Bildes (Applikation) Menü - Balken Dateiwerkzeuge Zeichenwerkzeuge Meldungen, Informationen, Fehler.
© 2002 Dr. Cavelius - Ley - Pohlig - Taulien Step by step zum JFrame 1 Zum JFrame Step by step by step by step by step by step by step by step by.
© 2005 Pohlig GK Informatik K Zum JFrame Step by step by step by step by step by step by step by step by.
© 2006 MPohlig Grundkurs Informatik mit Java 1 JFrame-Vorlage Step by step by step by step by step by step by step by step by.
© 2004 Pohlig - Taulien Swing Ereignissteuerung. © 2004 Pohlig - Taulien GK Informatik mit Java 2 Auf Button-Klick reagieren.
© 2005 Pohlig – Taulien: Eine GUI für die Klasse Mathematik Kurs: Come Together 1 April 2005 Eine GUI für die Klasse Mathematik.
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
FH-Hof Java2D - Grundlagen Richard Göbel. FH-Hof Java2D - Funktionen Java2D unterstützt: das Zeichnen von Grafiken die Darstellung von Texten die Darstellung.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Sommersemester 2004 Jan Drewnak Entwicklung und Einsatz von Geosoftware I Praktikum Sitzung 6 Sitzung 6: Model-View-Controller als Grundlage.
Sommersemester 2004 Jan Drewnak Entwicklung und Einsatz von Geosoftware I Praktikum Sitzung 7 Sitzung 7: User Interfaces in Java.
Objektorientierte Modellierung
Universität zu Lübeck Institut für Informationssysteme Die Anwendungsschicht Implementierung der Geschäftsprozesse und Rechte.
Die Persistenzschicht
Erste Schritte mit Eclipse Neues Projekt erstellen (1)
AWT und JFC Abstract Windowing Toolkit
Telecooperation/RBG Technische Universität Darmstadt Copyrighted material; for TUD student use only Grundlagen der Informatik 1 Thema 21: GUI und verschachtelte.
Java: Programmierung grafischer Oberflächen
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
EPROG Tutorium Einheit 4 Klassen und Objekte. Wiederholung Schleifen do... while while for break/continue Strings String char Methoden für Strings Arrays.
Informatik – Programmierpraktikum Alexander Volodarski Gruppe 14
Aufgaben Version 1: Es soll eine Wetterstation mit folgenden zwei Anzeigen implementiert werden: Aktuelle Wetterbedingungen mit Temperatur und.
Programmierpraktikum Java SS 2005
Java-AG Benutzeroberflächen Juni 2001 Michael Haas.
EPROG Tutorium #3 Philipp Effenberger
Lind 02/2005 Einführung in JAVA. Lind 02/2005 Beispiel: Mittelwert Es soll ein Programm erstellt werden, das den Mittelwert zweier reeller Zahlen berechnet.
Programmierpraktikum Java SS 2005
© 2005 Pohlig Informatik Jg. 11 mfH Michael Pohlig 1 Zum JFrame Step by step by step by step by step by step by step by step by.
Java-Kurs Übung Benutzeroberflächen und Graphik Frames (Fenster)
Institut für Kartographie und Geoinformation Prof. Dr. L. Plümer, Dipl.-Ing. D. Dörschlag, Dr. G. Gröger Einführung in die Programmierung mit Java 13.
Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. Dirk Dörschlag Einführung in die Programmierung mit.
GUI Programmierung in Java Branimir Djordjevic. GUI - Wichtige Begriffe -  Die Swing-Bibliothek in Java stellt zum Beispiel die folgenden Windows zur.
Grafische Benutzeroberflächen mit Swing (2) Christoph Broschinski, Alexander Sczyrba Jan Krüger
Verwendung von Graphical-User-Interfaces der Bibliothek: javax.swing.*
Vererbung in Java. public abstract class Form { protected int breite; protected int hoehe; protected String farbe; /** * Erzeuge eine Form der Breite.
Das Entwurfsmuster Model-View-Controller
Informatik Softwareentwicklung – 4.3 Entwurfsmuster
4. Softwareentwicklung 4.0 Grafische Benutzeroberflächen
 Präsentation transkript:

Universität zu Lübeck Institut für Informationssysteme Die Präsentationsschicht - mit Swing

Präsentationsschicht - Verantwortlichkeiten realisiert Benutzeroberfläche grafisch sorgt für die Dialogkontrolle Folge von Fenstern zur Durchführung eines Arbeitsablaufes

Präsentation von Daten Meldungsfenster, Eingabedialoge, … Darstellungskomponenten: Textfelder, Listboxen, Radiobuttons, Tabellen, Label, … Editieren von Objektdaten -> Plausibilisierung

Dialogkontrolle Kontrollfluss in der Benutzerschnittstelle Benutzerereignisse werden behandelt Wichtig! -> keine Dialogabfolge in Fenstern in Swing: Event-Listener

Ereignisbehandlung mit Event Listenern in Swing Objekte spezieller Klassen müssen bei Darstellungkomponenten registriert werden tritt das Ereignis ein, werden Methoden der Event Listener aufgerufen für unterschiedliche Ereignisse(Tastatur-, Mausereignisse), unterschiedliche Methoden

Ereignisbehandlung Bsp. Dialog Bitte Namen eingeben: Name: ok KeyListener TextfeldListener keyPressed(KeyEvent) : void ActionListener ButtonListener actionPerformed(ActionEvent) 1… 2mTextfeld.addKeyListener(new TextfeldListener(){ 3 public void keyPressed(KeyEvent e){ 4 textfeld_keyPressed(e); 5 } 6}); 7btn.addActionListener(new ActionListener(){ 8 public void actionPerformed(ActionEvent e){ 9 btn_actionPerformed(e); 10 } 11}); 12private void textfeld_keyPressed(KeyEvent e){ 13 if(e.getKeyChar()==?)… 14}…

Dialogkontrolle Bsp. Ablauf Anwendungsschicht-Schnittstelle(Fassade) Suchoptionen Begriff: Buch ok cancel Suchergebnis GUI-Controller constructor(ergebnis){ this.ergebnis = ergebnis; fillWindow(); } ok void doSearch(String suchStr){ ergebnis = fassade.find(suchStr); //Suchergebnis in einem neuen Fenster anzeigen } … Listener actionPerformed ergebnis Präsentationsschicht

Action-Konzept in Swing bietet Möglichkeit, eine in der GUI benutzte Funktionalität mit ihren erweiterten Eigenschaften in einer Java-Klasse zusammenzufassen viele Swing-Komponenten(z.B. JButton) besitzen Action-Member-Variable Funktionalität einer Action-Klasse kann in mehreren Menüs, Fenstern genutzt werden

Action - Interface public interface Action extends ActionListener{ public void actionPerformed(ActionEvent e); public Object getValue(String key); public void putValue(String key, Object value); }

Registrieren von Action-Objekten anmelden eines Action-Objekts => mittels setAction()-Methode =>wird als Listener registriert =>actionPerformed() wird immer aufgerufen, sobald passendes Ereignis in Darstellungskomponente stattfindet.

Parameter in Action-Objekten angemessene Reaktion => Parameter Mittels putValue()/getValue() Übergabe von Schlüssel/Wert-Paaren Problem: richtiger Zeitpunkt der Übergabe

Parameter-Übergabe Trick: Im z.B. Button wird zusätzlicher ActionListener registriert => dessen actionPerformed()-Methode wird dann ebenfalls aufgerufen und zwar zuerst =>hier werden Parameter des Action-Objekts gesetzt.

Action-Konzept Bsp. public class FindAction extends AbstractAction{ public void actionPerformed(ActionEvent ae){ Vector result = Marktplatz.findKatalogelement(getValue(name)); ResultDlgFrame rDlg = new ResultDlgFrame(result); rDlg.show(); } public class SearchDlgFrame extends LineEditFrame{ protected JButton jb; protected JTextField tf; public SearchDlgFrame(){ jb.setAction(new FindAction()); jb.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ae){ doActionPerformed(e); } }); … } public void doActionPerformed(ActionEvent e){ Object src = e.getSource(); Action action = ((JButton)src).getAction(); action.putValue(name,tf.getText()); } … }

Trennung der Verantwortklichkeiten - MVC MVC: Model-View-Controller-Entwurfsmuster Trennung zwischen: -Daten der Anwendung (model), -Darstellung der Daten (view) und -Dialogkontrolle(control)

Swing-Komponenten Elementare GUI-Controlls: Textfelder, Radiobuttons,… Fenster(JFrame) und andere Container(JPanel) Layout-Manager steuert Anordnung in Containern(z.B. BorderLayout, FlowLayout, GridLayout)

Überblick – wichtige Swing- Komponenten Komponente Aufgabe wichtige Methoden JLabel Darstellung von Zeichenketten setText(String) JTextField Anzeigen und Editieren von setText(String) Zeichenketten getText():String JTextArea analog, nur mehrzeilig analog JCheckBox Darstellung und Änderung von setSelected(boolean) Wahrheitswerte durch Ankreuzen isSelected(): boolean JComboBox stellt Liste von Optionen in Form getSelectedItem():Object einer Dropdown-Liste dar setSelectedItem(Object) JTree stellt Daten hierarchisch dar setModel(TreeModel) (z.B. Verzeichnisstruktur) JButton stellt einen einfachen Button dar

Swing-Komponenten Tutorial

Überblick über das bsp. Framework JFrame RootFrame Observer TreeFrame DialogFrame LineEditFrame JPanel TablePanel JTextField CheckableTextField Interface PropertyChecker AbstractChecker Fensterklassen Tabellen Eingabefelder

Dialogfenster DialogFrame(String title) void createCancelButton() JButton addActionButton(Action action) abstract void doActionPerformed(ActionEvent e) title button nbutton1 …

Eingabedialoge LineEditFrame(String title) void addProperty(String label, JComponent inputElement) void setData(Object data) void setFacade(IMarktplatz marktplatz) title button1button n… label 1: textfield1 label 2: textfield2 label…: textfield n label … radiobutton label … checkbox

Überblick Controller-Komponenten AbstractAction MarktAction LoginActionDoFindAction CheckLoginActionNewAnbieterAction

Abläufe Bsp. Anmeldung eines Anbieters loginDlg LoginDlgFr MarktAction CheckLoginAction fassade Marktplatz mCurrentAnbieter Anbieter Enter name/password Klick login actionPerformed() currentAnbieter = checkLogin(name,pwd) [currentAnbieter!=null] loginFailed() ahf AnbieterHomeFrame show() getName()