Einführung in die OOP mit Java
|
|
|
- Christa Steinmann
- vor 7 Jahren
- Abrufe
Transkript
1 Einführung in die OOP mit Java Das Event-Hanlding
2 Übersicht Event - Handling Das im JDK 1.1 Grundlagen Ereignistypen Ereignisquellen Adapterklassen für den Nachrichtenverkehr Variante1: Implementierung eines EventListener-Interfaces Variante2: Adapter und Innere Klassen Variante3: Adapter und Anonyme Klassen Variante4: Trennung von GUI und Anwendungscode
3 Grundlagen Kommunikation zwischen Betriebssystem und Anwendungsprogramm hauptsächlich durch versenden von Nachrichten Ereignisse: Mausklicks, Bewegungen des Mauszeigers, Tastatureingaben oder Veränderungen an der Größe oder Lage des Fensters
4 Grundlagen Bei der Verarbeitung des Nachrichtenverkehrs sind zwei verschiedene Arten von Objekten beteiligt Ereignisquellen (EventSources): Auslöser der Nachricht, z.b. ein Button der betätigt wird Ereignisempfänger (EventListener): Empfänger der Nachricht, kann jedes beliebige Objekt sein
5 Grundlagen Die Ereignisempfänger müssen sich bei den Ereignisquellen anmelden, damit sie benachrichtigt werden Dazu dienen spezielle Methoden z.b. addmouselistener(mouselistener) removemouselistener(mouselistener)
6 Grundlagen Vorteil: Es verringert den Nachrichten Verkehr, da nur Nachrichten verschickt werden, wenn sich Empfänger angemeldet haben Es erlaubt eine klare Trennung zwischen Programmcode zur Oberflächengestaltung und solchem zur Implementierung der Anwendungslogik
7 Ereignistypen Low-Level-Ereignisse
8 Ereignistypen Klasse EventObject public Object getsource() Klasse MouseEvent Klick- und Drag-Ereignisse Mausbewegungen Mit getid() kann das Programm herausfinden, um welche Art von Ereignis es sich handelt punlic int getid()
9 Ereignisempfänger (EventListeners)
10 Ereignisquellen (EventSources) Fenster, Dialogelemente oder Programmobjekte Sendet nur ein Ereignis wenn sich ein Empfänger registriert hat Registrierung über spezielle Methoden z.b. addmouselistener( )
11 Ereignisquellen (EventSources) Unterstützt das Multicasting von Ereignissen Daraus Resultiert, das Ereignisempfänger alle zugehörigen Methoden implementieren müssen Ein "MouseListener" z. B. alle fünf Methoden. Das wird dadurch erzwungen, dass im Interface "MouseListener" alle fünf Methoden als abstrakte Methoden aufgeführt sind
12 Adapterklassen Eine Adapterklasse in Java ist eine Klasse, die ein vorgegebenes Interface mit leeren Methodenrümpfen implementiert. Adapterklassen werden verwendet, wenn aus einem Interface lediglich ein Teil der Methoden benötigt wird Zu jedem Low-Level-Ereignisempfänger gibt es eine passende Adapterklasse
13 Implementierung eines EventListener-Interfaces public class Event1 extends JPanel implements MouseListener { private int count = 0; Event1() {addmouselistener(this); public void paintcomponent(graphics g) { super.paintcomponent(g); g.drawstring("counter: " + count, 20, 20); public static void main(string[] args) { JFrame window = new JFrame("Event1"); window.setsize(160, 100); window.setlocation(100, 100); window.setdefaultcloseoperation(jframe.exit_on_close); window.getcontentpane().add(new Event1()); window.setvisible(true); public void mouseentered(mouseevent me) {count++;repaint(); public void mouseclicked(mouseevent me) { public void mouseexited(mouseevent me) { public void mousepressed(mouseevent me) { public void mousereleased(mouseevent me) {
14 Implementierung eines EventListener-Interfaces Die Verbindung der Ereignisquelle mit dem Ereignisempfänger erfolgt durch den Aufruf der Methode addmouselistener(this); Die Klasse "Event1" meldet sich selbst als Ereignisempfänger an Alle Mausereignisse werden dadurch an die Klasse Event1 weitergeleitet und führen zum Aufruf der Methoden des Interfaces MouseListener
15 Implementierung eines EventListener-Interfaces Nachteil: Für jeden Ereignistyp muss eine passende Listener-Klasse registriert werden, dadurch werden schnell viele leere Methodenrüpfe in der Fensterklasse auftreten Höchstens für kleine Programme geeignet
16 Adapter und Innere Klassen public class Event2 extends JPanel { private int count = 0; Event2() { addmouselistener(new MyMouseListener()); public void paintcomponent(graphics g) { super.paintcomponent(g); g.drawstring("counter: " + count, 20, 20); public static void main(string[] args) { JFrame window = new JFrame("Event2"); window.setsize(160, 100); window.setlocation(100, 100); window.setdefaultcloseoperation(jframe.exit_on_close); window.getcontentpane().add(new Event2()); window.setvisible(true); // class MyMouseListener extends MouseAdapter { public void mouseentered(mouseevent me) { count++; repaint();
17 Adapter und Innere Klassen Eine Instanz von "MyMouseListener" wird angelegt und als Ereignisempfänger angemeldet addmouselistener(new MyMouseListener()) Die innere Klasse überschreibt die Methode "mouseentered" der Adapterklasse class MyMouseListener extends MouseAdapter { public void mouseentered(mouseevent me) { count++; repaint();
18 Adapter und Innere Klassen Vorteil: Es werden keine unnützen Methodenrümpfe erzeugt, da nur die tatsächlich benötigten Methoden implementiert werden müssen
19 Adapter und Anonyme Klassen public class Event3 extends JPanel { private int count = 0; Event3() { addmouselistener(new MouseAdapter() { public void mouseentered(mouseevent me) { count++; repaint(); ); public void paintcomponent(graphics g) { super.paintcomponent(g); g.drawstring("counter: " + count, 20, 20); public static void main(string[] args) { JFrame window = new JFrame("Event3"); window.setsize(160, 100); window.setlocation(100, 100); window.setdefaultcloseoperation(jframe.exit_on_close); window.getcontentpane().add(new Event3()); window.setvisible(true);
20 Adapter und Anonyme Klassen Im Konstruktor wird eine Kurzschreibweise eingesetzt addmouselistener(new MyMouseListener()); zusammen mit der Definition class MyMouseListener extends MouseAdapter { public void mouseentered(mouseevent me) { count++; repaint(); wird ersetzt durch: addmouselistener( new MouseAdapter() { public void mouseentered(mouseevent me) { count++; repaint(); );
21 Adapter und Anonyme Klassen Vorteil: Verminderter Aufwand, denn es muss keine separate Klassendefinition angelegt werden Empfiehlt sich vor allem, wenn sehr wenig Code für den Ereignisempfänger benötigt wird
22 Trennung von GUI- und Anwendungscode public class Listing2805{ public static void main(string[] args){ MainFrameCommand cmd =new MainFrameCommand(); MainFrameGUI gui = new MainFrameGUI(cmd); class MainFrameGUI extends Frame{ public MainFrameGUI(KeyListener cmd) { super("nachrichtentransfer"); setbackground(color.lightgray); setsize(600,300); setlocation(200,100); setvisible(true); addkeylistener(cmd); public void paint(graphics g) { g.setfont(new Font("Serif",Font.PLAIN,36)); g.drawstring("zum Beenden bitte ESC drücken...",10,100); class MainFrameCommand extends KeyAdapter{ public void keypressed(keyevent event){ Frame source = (Frame)event.getSource(); if (event.getkeycode() == KeyEvent.VK_ESCAPE){ source.setvisible(false); source.dispose(); System.exit(0);
23 Trennung von GUI- und Anwendungscode Vorwiegend für größere Programme geeignet Für kleiner Programme, oder solche mit wenig Ereigniscode, sollte eher eine der vorherigen Varianten gewählt werden
24 Noch Fragen
25 Danke für ihre Aufmerksamkeit
GUI Programmierung mit JAVA Swing
GUI Programmierung mit JAVA Swing Komponenten Layout Event Handling Imaging 2001 Thomas Weiler 1 JAVA Swing Bibliothek zur Erstellung grafischer Benutzerschnittstellen in JAVA Bietet Klassen für grafische
I. Grundlagen II. Ereignistypen III. Ereignisempfänger. Event-Handling (EH)
I. Grundlagen II. Ereignistypen III. Ereignisempfänger IV. Ereignisquellen V. Adapterklassen Event-Handling (EH) I. Grundlagen II. Ereignistypen III. Ereignisempfänger IV. Ereignisquellen V. Adapterklassen
Einführung in die Programmierung für NF. Übung 08
Einführung in die Programmierung für NF Übung 08 Inhalt Eventbehandlung in Java Swing Einführung in die Programmierung für NF Übung 08 2 Eventbehandlung in Java Swing Wir haben bereits einige grafische
Abstrakte Klassen, Interfaces
Abstrakte Klassen, Interfaces INE2, Mittwoch 8.00-9.35 / TE561 M. Thaler, [email protected] Office TG208 http://www.zhaw.ch/~tham 1 Um was gehtes? Problemstellung Klassenhierachie - verschiedene geometrische
JButton, JCheckBox, JRadioButton. Programmieren II. Vorlesung 7. Handout S. 1. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester 2009.
Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2009 1 / 30 2 / 30 JButton, JCheckBox, JRadioButton In Swing existieren drei wesentliche Klassen für Schaltflächen: JButton für normale
Eventhandling. Delegation model Eventhandler model
Eventhandling Dient der Kommunikation der Controlls mit der eigentlichen Anwendung. Prinzipiell gibt es zwei verschiedene Verfahren für das Eventhandling Delegation model Eventhandler model Die Arbeit
Ereignisverarbeitung in Java
Ereignisverarbeitung in Java Michael Dienert 18. Juli 2012 Inhaltsverzeichnis 1 Kommandozeile oder grafische Oberfläche 2 2 Ereignisse, Ereignisquellen und Ereignisabhörer 2 2.1 Ereignisse................................
Institut für Programmierung und Reaktive Systeme. GUIs mit Swing. Markus Reschke
GUIs mit Swing Markus Reschke 28.08.2014 Beispiel: Ein einfaches GUI-Programm Siehe Painter.java Markus Reschke GUIs mit Swing 2 GUI Frameworks in Java AWT war das erste GUI-Framework, welches mit Java
Graphical User Interfaces
Graphical User Interfaces SEP 184 Toolkits es gibt verschiedene Toolkits (= Sammlungen von Klassen, Anbindungen an Betriebssystem, etc.) für grafische Oberflächen Abstract Windows Toolkit (AWT) Swing Standard
Grundlagen der Programmierung (GP) Prof. Dr. H. Schlingloff Joachim Hänsel
Grundlagen der Programmierung (GP) Prof. Dr. H. Schlingloff Joachim Hänsel 17. 6. 2010 Kapitel 8: Java-Programmierung 8.1 Ereignisbehandlung, Benutzungsschnittstellen 8.2 Graphikprogrammierung 8.1 Ereignisbehandlung
GUI-Programmierung. Teil I. Unterlagen zum Modul OOP mit Java V by MOU2/BFH-TI. Berner Fachhochschule Technik und Informatik
GUI-Programmierung mit Java Teil I Unterlagen zum Modul OOP mit Java V 3.0 2007 by WBR1/BFH-TI 2011 by MOU2/BFH-TI GUI-Programmierung V3.0 2011 by WBR1&MOU2/BFH-TI Lernziele Die Kursteilnehmer sind in
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 7. Grafische Benutzeroberflächen 1
Kapitel 7 Grafische Benutzeroberflächen Grafische Benutzeroberflächen 1 Ziele Grafische Benutzeroberflächen (Graphical User Interfaces) als Anwendungsbeispiel für die objektorientierte Programmierung kennenlernen.
Graphische Benutzungsoberflächen mit Java. Einführung in NetBeans
Graphische Benutzungsoberflächen mit Java Einführung in NetBeans Graphische Benutzungsoberflächen! Interaktion mit dem Programm! Datenein- und ausgabe! Rückmeldungen über Verarbeitung der Daten! Visualisierung
Einstieg in die Informatik mit Java
1 / 15 Einstieg in die Informatik mit Java Ereignisverwaltung und Layout-Typen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 15 1 Ereignis-Verwaltung 2 Layout-Typen GridLayout
Funktionale und Objekt-Orientierte Programmierkonzepte
Funktionale und Objekt-Orientierte Programmierkonzepte Prof. Marc Fischlin, Wintersemester 15/16 Kapitel 17: GUI, Threads und verschachtelte Klassen 13. Oktober 2010 Dr.Marc Fischlin Kryptosicherheit 1
Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik GUI-Programmierung mit Swing
Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik GUI-Programmierung mit Swing AWT und Swing Java enthält zwei Pakete zur Programmierung graphischer Oberflächen. java.awt: Das Abstract
Swing oder AWT? Was ist das: Swing bzw. AWT. Haupterkennungsmerkmal von Swing Source-Code:
Swing oder AWT? Was ist das: Swing bzw. AWT Beides sind Klassenbibliotheken mit fertig programmierten Klassen zur Erstellung von graphischen Benutzeroberflächen mit Fenstern, Textfeldern, Buttons etc..
11. GUI-Programmierung mit SWING Überblick
11. GUI-Programmierung mit SWING Überblick 11.1 Einführung 11.2 Einfache Swing Komponenten 11.3 Ereignisbehandlung und Adapterklassen 11.4 Zeichnen 11.5 Dialoge 11.6 Layout Manager 11.7 Komplexere Swing
Javakurs für Anfänger
Javakurs für Anfänger Einheit 13: Interfaces Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme 1. Teil: Interfaces Motivation Eigenschaften Besonderheiten Anonyme Klassen Lambda-Ausdrücke Praxis:
Grafische Benutzeroberflächen
Gilbert Beyer und Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik http://www.pst.ifi.lmu.de/lehre/wise-11-12/infoeinf WS11/12 Aufgabe Ein Benutzer soll zwei Zahlen in ein Programm
Grafische Benutzeroberflächen
Dr. Philipp Wendler Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung WS18/19 https://www.sosy-lab.org/teaching/2018-ws-infoeinf/ Aufgabe Ein Benutzer soll
Objektorientierte Software-Entwicklung
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
NTB Druckdatum: 01.04.13 -
AWT UND SWING AWT = abstract windowing toolkit Bausteine Eigenes Fenster Programmcode steht nicht im Main, sondern in einer separaten Klasse extends JFrame JWindow selbstständiges Fenster, ohne Rahmen
Grafische Benutzeroberflächen
Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"
INE2 OOP mit Java 3 Abstrakte Klassen und Interfaces
INE2 OOP mit Java 3 Abstrakte Klassen und Interfaces Abstrakte Klassen Interfaces (Schnittstelle) Mehrfachvererbung mit Interfaces Interfaces vs. abstrakte Klassen Innere Klassen Anonyme Klassen Adapterklassen
Programmiertechnik GUI Programmierung mit Java Swing
Programmiertechnik GUI Programmierung mit Java Swing Prof. Dr. Oliver Haase Software Engineering und Verteilte Systeme Raum F012 [email protected] Tel: 07531/206-720 Oliver Haase Hochschule Konstanz
Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter
Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener
Exkurs: ANONYME KLASSEN. Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm
Exkurs: ANONYME KLASSEN Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm Anonyme Klassen Eigenschaften 1 Häufigste Anwendung lokaler Klassen: anonyme Definition. Klasse erhält keinen eigenen
Deklaration einer Klasse Innere innerhalb Klassen einer in Ja anderen v a Klasse
Innere Klassen in Java Java 1.0: nur top-level Klassen Seit Java Version 1.1: Innere Klassen Deklaration einer Klasse innerhalb einer anderen Klasse Illustration Eigenschaften Vorteile Anwendungsmöglichkeiten
Einführung: Grafische Benutzeroberflächen. Programmieren II. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester / 22
Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2010 1 / 22 Einführung: Grafische Benutzeroberflächen 2 / 22 Einführung: GUI Fast alle Programme besitzen mittlerweile eine grafische
Programmieren II. Java im Vergleich zu anderen Sprachen. Einführung: GUI. Einführung: Grafische Benutzeroberflächen. Dr.
Programmieren II Dr. Klaus Höppner Hochschule Darmstadt SS 2008 1 / 22 2 / 22 Einführung: GUI Fast alle Programme besitzen mittlerweile eine grafische Benutzeroberfläche (engl: Graphical User Interface,
Info B VL 11: Innere Klassen/Collections
Info B VL 11: Innere Klassen/Collections Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 11: Innere Klassen/Collections
Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik
Programmieren II Innere Klassen Heusch 10, 13.10 Ratz 5.2.1, 9.8 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Innere Klassen Bisher kennen wir nur Klassen, die entweder zusammen
Grafik in Java. 1 Werkzeugauswahl. 2 Ereignisbehandlung (Listener bzw. Adapter) - 1 -
- 1 - Grafik in Java 1 Werkzeugauswahl In unserer statischen All -Klasse deklarieren wir den Aufzählungstyp (enum) Werkzeug und anschließend eine Variable (ein statisches Feld) dieses Typs, die ab jetzt
Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen
Kapitel 9 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Attribute von Klassen, Methoden und Variablen Interfaces WS 07/08 1/ 18 2/ 18
Java Game Development Fabian Birzele Programmierpraktikum 2008 / 2009
Java Game Development Fabian Birzele Programmierpraktikum 2008 / 2009 Fabian Birzele, LMU Institut für Informatik, Lehrstuhl für Praktische Informatik und Bioinformatik, 2008: Programmierpraktikum 1 Ziele
Aufbau einer typischen Java-Datei
Aufbau einer typischen Java-Datei 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 [package mein.paket;] [import
Ziel dieses Kapitels: Einführung in die Grundzüge der Programmierung graphischer Benutzeroberflächen (engl.: "graphical user interface", GUI) in Java
GUI-Programmierung in Java GUI-Programmierung in Java 2002 Prof. Dr. Rainer Manthey Informatik II 1 AWT und Swing Ziel dieses Kapitels: Einführung in die Grundzüge der Programmierung graphischer Benutzeroberflächen
Fachhochschule Stuttgart Prof. Uwe Schulz 5. Juli 2006 Hochschule der Medien Klausur Informatik, EDV-Nr (42021) Seite 1 von 4
Hochschule der Medien Klausur Informatik, EDV-Nr. 40301(42021) Seite 1 von 4 Name: Matr. Nr.: Note Teil 1: Keine Hilfsmittel! Bearbeitungszeit: 20 Minuten Frage Stichwort Punkte 1 Schleife 2 2 Code-Fragment
OOP: Nebenläufigkeiten Threads. Dipl.-Inform. Arnold Willemer
OOP: Nebenläufigkeiten Threads Dipl.-Inform. Arnold Willemer [email protected] Schlafen für Profis Die C-64-Lösung kocht und blockiert den Prozessor while (!fertig) // nichts tun: busy waiting
Punkte. Teil 1. Teil 2. Summe. 1. Zeigen Sie, dass der untenstehende Suchbaum die AVL-Bedingung verletzt und überführen Sie ihn in einen AVL-Baum.
Hochschule der Medien Prof Uwe Schulz 1 Februar 2007 Stuttgart Klausur Informatik 2, EDV-Nr 40303/42022 Seite 1 von 2 Name: Matr Nr: Teil 1: Keine Hilfsmittel Bearbeitungszeit: 20 Minuten Teil 1 Teil 2
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 7. Grafische Benutzeroberflächen
1 Kapitel 7 Ziele 2 (Graphical User Interfaces) als Anwendungsbeispiel für die objektorientierte Programmierung kennenlernen Benutzung von Vererbung zur Erstellung individueller GUI-Klassen durch Erweiterung
Objektorientierte Programmierung Studiengang Medieninformatik
Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 5 12.04.2017 Was bisher geschah... Objektorientierte Programmierung Klassen und Objekte, Attribute
Prof. Dr. Wolfgang Schramm. Vorlesung. Techniken der Programmentwicklung. Exkurs: Anonyme Klassen
Prof. Dr. Wolfgang Schramm Vorlesung Exkurs: Anonyme Klassen Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm Vorlesung Exkurs: Anonyme Klassen Techniken der Programmentwicklung Anonyme Klassen
Programmieren 2 Java Überblick
Programmieren 2 Java Überblick 1 Klassen und Objekte 2 Vererbung 4 Innere Klassen 5 Exceptions 6 Funktionsbibliothek 7 Datenstrukturen und Algorithmen 8 Ein-/Ausgabe 9 Graphische Benutzeroberflächen 10
Klausur Softwaretechnik / JAVA Fachbereich BW, für WINFO
Klausur Softwaretechnik / JAVA Fachbereich BW, für WINFO Dipl.-Ing. Klaus Knopper 20.01.2010 Hinweis: Bitte schreiben Sie auf das Deckblatt und auf jede Seite Ihren Namen und/oder Ihre Matrikelnummer,
Innere Klassen. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java
Innere Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 13.06.07 G. Bohlender (IANM UNI Karlsruhe) Innere Klassen 13.06.07 1 / 11
Einführung in GUI-Programmierung. javax.swing
Einführung in GUI-Programmierung javax.swing GUI Graphical User Interface ( Grafische Benutzerschnittstelle ) Anschaulichere und leichtere Möglichkeit zur Dateneingabe und Kontrolle von Programmen Stellt
II.4.5 Generische Datentypen - 1 -
1. Unterklassen und Vererbung 2. Abstrakte Klassen und Interfaces 3. Modularität und Pakete 4. Ausnahmen (Exceptions) 5. Generische Datentypen 6. Collections II.4.5 Generische Datentypen - 1 - Ähnliche
