Einführung in JAVA. Low-Level-Events

Größe: px
Ab Seite anzeigen:

Download "Einführung in JAVA. Low-Level-Events"

Transkript

1 Einführung in JAVA Low-Level-Events 1

2 Übersicht: - Window-Events - Component-Events - Mouse-Events - MouseMotion-Events - Focus-Events - Key-Events Inhaltverzeichnis 2

3 Übersicht 3

4 Übersicht 4

5 Window-Events: - Bedeutung - Übersicht der Methoden von WindowsListener - Beispiel Window-Events 5

6 Window-Event wird immer dann generiert, wenn sich am Status eines Fensters eine Änderung ergeben hat Statusänderungen: - neues Fenster erstellen - Fenster zerstören - Aktivieren/ Deaktivieren - Symbolisieren - Wiederherstellung Empfänger für Window-Events muss das Interface WindowListener implementieren und bekommt Events des Typs WindowEvent übergeben. Methode getwindow: zur Ermittlung des Fensters, welches die Nachricht ausgelöst hat. public Window getwindow() Die Registrierung der Empfängerklasse erfolgt mit der Methode addwindowlistener, die in den Klassen Dialog und Frame zur Verfügung steht: public void addwindowlistener(windowlistener l) Window-Events/ Bedeutung 6

7 Ereignismethode Bedeutung windowactivated Das Fenster wurde aktiviert. Aufruf beim: erstellen des Fensters vom Hintergrund in den Vordergrund windowclosed Das Fenster wurde geschlossen. windowclosing Das Fenster soll geschlossen werden. Aufruf: Wenn der Anwender das Fenster über die Titelleiste, das Systemmenü oder die Tastenkombination [ALT]+[F4] schließen will. Window-Events/ Übersicht der Methoden 7

8 Ereignismethode Bedeutung windowdeactivated windowdeiconified windowiconified windowopened Das Fenster wurde deaktiviert, also in den Hintergrund gestellt. Das Fenster wurde wiederhergestellt, nachdem es zuvor auf Symbolgröße verkleinert worden war. Das Fenster wurde auf Symbolgröße verkleinert. Das Fenster wurde geöffnet. Window-Events/ Übersicht der Methoden 8

9 public class Listing2901 { public static void main(string[] args) { CloseableFrame wnd = new CloseableFrame("CloseableFrame"); wnd.setbackground(color.lightgray); wnd.setsize(300,200); wnd.setlocation(200,100); wnd.setvisible(true); wnd.addwindowlistener( new WindowAdapter() { public void windowclosed(windowevent event) { System.out.println("terminating program..."); System.exit(0); } } ); } } Beispiel/ Programmauszug 9

10 Component-Events: - Bedeutung - Übersicht der Methoden von ComponentListener - Beispiel Component-Events 10

11 Component-Event wird generiert, wenn: - eine Komponente verschoben - ihre Größe verändert wurde - wenn sich der Anzeigezustand einer Komponente verändert Da sowohl Fenster als auch alle Dialogelemente aus der Klasse Component abgeleitet sind, haben die hier erwähnten Ereignisse für nahezu alle GUI-Elemente (Graphical User Interface) des AWT (Abstract Windowing Toolkit ) Gültigkeit. Ein Empfänger für Component-Events muss das Interface ComponentListener implementieren und bekommt Events des Typs ComponentEvent übergeben. Component-Events/ Bedeutung 11

12 ComponentEvent erweitert die Klasse AWTEvent und stellt neben getid und getsource die Methode getcomponent zur Verfügung, mit der die Komponente ermittelt werden kann, die die Nachricht ausgelöst hat. public Component getcomponent() Die Registrierung der Empfängerklasse erfolgt mit der Methode addcomponentlistener, die in allen aus Component abgeleiteten Klassen zur Verfügung steht: public void addcomponentlistener(componentlistener l) Component-Events/ Bedeutung 12

13 Ereignismethode Bedeutung componentshown componenthidden componentmoved componentresized Eine Komponente wurde sichtbar. Eine Komponente wurde unsichtbar. Eine Komponente wurde verschoben. Die Größe einer Komponente hat sich geändert. Component-Events / Übersicht der Methoden 13

14 class ComponentRepaintAdapter extends ComponentAdapter { public void componentmoved(componentevent event) { event.getcomponent().repaint(); } public void componentresized(componentevent event) { event.getcomponent().repaint(); } } Beispiel/ Programmauszug 14

15 Mouse-Events: - Bedeutung - Übersicht der Methoden von MouseListener - Beispiel Mouse-Events 15

16 Mouse-Event entsteht, wenn der Anwender innerhalb der Client-Area des Fensters eine der Maustasten drückt oder losläßt. Unterscheidung von: einfachen und doppelten Mausklicks Ein Empfänger für Mouse-Events muss das Interface MouseListener implementieren und bekommt Events des Typs MouseEvent übergeben. MouseEvent erweitert die Klasse InputEvent und stellt neben getid und getsource eine Reihe zusätzlicher Methoden zur Verfügung, die wichtige Informationen liefern. Die Registrierung der Empfängerklasse erfolgt mit der Methode addmouselistener public void addmouselistener(mouselistener l) Mouse-Events / Bedeutung 16

17 Ereignismethode mousepressed mousereleased mouseclicked mouseentered mouseexited Bedeutung Eine Maustaste wurde gedrückt. Die gedrückte Maustaste wurde losgelassen. Eine Maustaste wurde gedrückt und wieder losgelassen. Diese Methode wird nach mousereleased aufgerufen. Der Mauszeiger wurde in den Client- Bereich der auslösenden Komponente hineinbewegt. Der Mauszeiger wurde aus dem Client- Bereich der auslösenden Komponente herausbewegt. Mouse-Events / Übersicht der Methoden 17

18 Damit ein Programm auf Mausklicks angemessen reagieren kann, benötigt es zusätzliche Informationen, die es sich mit den Methoden der Klasse MouseEvent beschaffen kann. Mit getx, gety und getposition kann die Position des Mauszeigers zum Zeitpunkt des Ereignisses ermittelt werden: public int getx() public int gety() public Point getpoint() getx liefert die x- und gety die y-koordinate des Punktes, an dem der Mauszeiger sich beim Auftreten des Ereignisses befindet. getpoint liefert dieselbe Information zusammengefasst als Point-Objekt. Mouse-Events 18

19 Die Koordinatenwerte werden relativ zum Ursprung der auslösenden Komponente angegeben. Bei einem Fenster des Typs Frame bedeutet dies, dass bei einem Klick in der oberen linken Ecke nicht (0,0) zurückgegeben wird, sondern (getinsets().left, getinsets().top). Dies stimmt mit dem Ursprung des Koordinatensystems überein, das auch beim Aufruf der Grafikroutinen zugrunde gelegt wird. Mouse-Events 19

20 Die Methode getclickcount liefert die Anzahl der Mausklicks, die dem aktuellen Ereignis zugeordnet ist: public int getclickcount() Normalerweise hat dieser Zähler den Wert 1, bei Mehrfachklicks gibt es aber auch MouseEvents mit dem Wert 2 oder (je nach Schnelligkeit der Klicks) noch höheren Werten. Die Abfrage von getclickcount kann dazu verwendet werden, auf Doppelklicks zu reagieren. Hierzu ist lediglich beim Aufruf von mousepressed oder mouseclicked zu überprüfen, ob getclickcount den Wert 2 liefert. In diesem Fall handelt es sich um einen Doppelklick. Mouse-Events / Einfach/Doppelklicks 20

21 Alternative Methode zur Erkennung eines Doppelklicks: Zeitspanne zwischen zwei Klicks und den Abstand der beiden Koordinatenpaare voneinander zu messen und bei hinreichend kleinen Differenzen einen Doppelklick anstelle zweier Einfachklicks zu melden. Dazu wird mit der Methode getwhen der Klasse InputEvent der Zeitpunkt (in Millisekunden) und mit getpoint oder getx und gety die Mausposition zweier aufeinanderfolgender Events bestimmt: public long getwhen() Vorteil: zeitliche und positionelle Toleranz für Doppelklicks selbst beeinflussbar Mouse-Events / Einfach/Doppelklicks 21

22 Beim Drücken der linken Maustaste lächelt das Gesicht, bei der rechten sieht es grimmig aus. Bei einem Doppelklick bekommt der Smiley zusätzlich eine Brille aufgesetzt. Die Ausgabe des Programms sieht beispielsweise so aus: Erwähnenswert ist die Tatsache, dass das Programm ohne paint-methode auskommt. Tatsächlich beschafft die Methode mousepressed sich die zum Zeichnen erforderliche Instanz der Klasse Graphics durch Aufruf von getgraphics selbst. Die Methode getgraphics gibt immer den Grafikkontext des aktuellen Fensterobjekts zurück. Beispiel 22

23 MouseMotion-Events: - Bedeutung - Übersicht der Methoden - Beispiel MouseMotion-Events 23

24 - klare Trennung zwischen Mouse-Events und MouseMotion-Events - Mouse-Events für Mausklicks und Betreten oder Verlassen der Komponente - MouseMotion-Events Auskunft über die Bewegung des Mauszeigers. Neben der verbesserten Modularisierung wurde die Trennung vor allem deshalb vorgenommen, um Performance-Verbesserungen zu erzielen. Ein Empfänger für MouseMotion-Events muss das Interface MouseMotionListener implementieren. Er wird mit der Methode addmousemotionlistener registriert. public void addmousemotionlistener(mousemotionlistener l) Bedeutung 24

25 Das Interface MouseMotionListener definiert die Methoden mousemoved und mousedragged: public abstract void mousemoved(mouseevent e) public abstract void mousedragged(mouseevent e) mousemoved wird aufgerufen, wenn die Maus bewegt wird, ohne dass dabei eine der Maustasten gedrückt ist. mousedragged wird dagegen aufgerufen, wenn die Maus bei gedrückter linker oder rechter Maustaste bewegt wird. Bedeutung 25

26 Zusammenspiel zwischen paint und den Methoden, die die Maus-Events behandeln. Beim Aufruf von paint werden zunächst alle Rechtecke gezeichnet, die sich in der Liste drawlist befinden. Anschließend überprüft paint, ob das aktuelle Element eine Länge oder Breite größer Null hat, und zeichnet es gegebenenfalls. Dies ist genau dann der Fall, wenn der Anwender die Maustaste gedrückt und die Maus vom Ursprung nach rechts unten bewegt hat. Beim Loslassen der Maustaste wird das aktuelle Element in die Liste der Rechtecke eingetragen und steht so beim nächsten paint zur Verfügung Beispiel 26

27 Focus-Events - Bedeutung - Beispiel Focus-Events 27

28 Der Fokus zeigt an, welches Fenster die Tastatureingaben erhält. Sind mehrere Fenster gleichzeitig geöffnet, so kann immer nur eines von ihnen den Fokus beanspruchen. Sind auf einem aktiven Fenster mehrere Dialogelemente aktiv, so kann ebenfalls nur eines davon den Fokus erhalten. Ein Empfänger für Focus-Events muss das Interface FocusListener implementieren und bekommt Events des Typs FocusEvent übergeben. FocusEvent erweitert die Klasse ComponentEvent und stellt neben getid und getsource die Methode istemporary zur Verfügung, die anzeigt, ob der Fokuswechsel temporär oder permanent ist: public boolean istemporary() Focus-Events / Bedeutung 28

29 Die Registrierung von Focus-Events erfolgt mit der Methode addfocuslistener, die auf allen Objekten des Typs Component oder daraus abgeleiteten Objekten zur Verfügung steht: public void addfocuslistener(focuslistener l) Das Interface FocusListener enthält lediglich zwei unterschiedliche Methoden: public abstract void focusgained(focusevent e) Fokus erhalten public abstract void focuslost(focusevent e) Fokus abgegeben Es gibt die Möglichkeit, den Fokus programmgesteuert zu verändern. Dazu gibt es die Methode requestfocus der Klasse Component, mit der eine Komponente den Fokus für sich selbst beanspruchen bzw. ihn einer anderen Komponente zuweisen kann: public void requestfocus() Focus-Events / Bedeutung 29

30 Das Programm zeigt die Anwendung eines FocusListener-Interfaces zur Implementierung der Methoden focusgained und focuslost auf einem Frame-Objekt. Wenn das Fenster den Eingabefokus erhält, wird der Hintergrund BLAU und gibt die Meldung»Fokus erhalten«aus. Verliert das Fenster den Fokus, so wird der Hintergrund Grau und die Meldung»Kein Fokus«wird angezeigt. Die Registrierung des Fokusempfänger-Objekts erfolgt durch Aufruf von addfocuslistener(this), bei dem das Fensterobjekt sich selbst als Empfänger registriert: public void focusgained(focusevent event) { havefocus = true; setbackground(color.blue); repaint(); } public void focuslost(focusevent event) { havefocus = false; setbackground(color.lightgray); repaint(); } Beispiel 30

31 Key-Events - Bedeutung - Übersicht der Symbolischen Namen - Beispiel Key-Events 31

32 Alle Tastatureingaben werden an die fokussierte Komponente gesendet. Ein Empfänger für Key-Events muss das Interface KeyListener implementieren und bekommt Events des Typs KeyEvent übergeben. KeyEvent erweitert die Klasse InputEvent, die ihrerseits aus ComponentEvent abgeleitet ist, und stellt neben getid und getsource eine ganze Reihe von Methoden zur Verfügung, mit denen die Erkennung und Bearbeitung der Tastencodes vereinfacht wird. Die Registrierung von Key-Events erfolgt mit der Methode addkeylistener, die auf allen Objekten des Typs Component oder daraus abgeleiteten Klassen zur Verfügung steht: public void addkeylistener(keylistener l) Bedeutung 32

33 Das Interface KeyListener definiert drei unterschiedliche Methoden: public abstract void keypressed(keyevent e) public abstract void keyreleased(keyevent e) public abstract void keytyped(keyevent e) Zeichentasten: Buchstaben, Ziffern oder sonstige gültige Unicode-Zeichen z.b. [a], [A], [B], [1], [2], [%], [+], [ESC], [LEER] oder [TAB] Funktionstasten: [F1], [F2], [POS1] oder [CURSORLINKS], Umschalttasten [STRG], [ALT] und [UMSCHALT] Bedeutung 33

34 keytyped keypressed wird aufgerufen, wenn eine Zeichentaste gedrückt wurde.!!beim Drücken einer Funktionstaste wird sie dagegen nicht aufgerufen. wird bei jedem Tastendruck aufgerufen, unabhängig davon, ob es sich um eine Zeichentaste oder eine Funktionstaste handelt. Mit keypressed können sogar in beschränktem Umfang die Feststelltasten wie [NUMLOCK] oder [CAPSLOCK] erkannt werden. Beide Methoden erhalten auch Tastatur-Repeats, werden also bei längerem Festhalten einer Taste wiederholt aufgerufen. keyreleased wird aufgerufen, wenn eine gedrückte Taste losgelassen wurde unabhängig, ob es sich um eine Zeichen- oder Funktionstaste handelt. Bedeutung 34

35 Um beim Auftreten eines Tastatur-Events zu erkennen, welche Taste gedrückt wurde, stellt die Klasse KeyEvent die Methoden getkeycode und getkeychar und zusätzlich die aus InputEvent geerbten Methoden isshiftdown, iscontroldown, ismetadown und isaltdown zur Verfügung: public int getkeycode() public char getkeychar() public boolean isshiftdown() public boolean iscontroldown() public boolean ismetadown() public boolean isaltdown() getkeychar liefert das Zeichen, das der gedrückten Zeichentaste entspricht, also ein 'a', wenn die Taste [A] gedrückt wurde, und ein 'A', wenn die Tastenkombination [UMSCHALT]+[A] gedrückt wurde. getkeycode liefert dagegen virtuelle Tastencodes, die in KeyEvent als symbolische Konstanten definiert wurden. Hier wird beim Drücken der Taste [A] immer der Code VK_A geliefert, unabhängig davon, ob [UMSCHALT] gedrückt wurde oder nicht. Bedeutung 35

36 Symbolischer Name Bedeutung VK_0... VK_9 [0]... [9] VK_A... VK_Z [A]... [Z] VK_ENTER [ENTER] VK_SPACE [LEER] VK_TAB [TAB] VK_ESCAPE [ESC] VK_BACK_SPACE [RÜCK] VK_F1... VK_F12 Die Funktionstasten [F1]... [F12] VK_HOME, VK_END [HOME], [END] VK_INSERT, VK_DELETE [EINFG], [ENTF] VK_PAGE_UP, VK_PAGE_DOWN [BILDHOCH], [BILDRUNTER] VK_DOWN, VK_UP [CURSORHOCH], [CURSORRUNTER] VK_LEFT, VK_RIGHT [CURSORLINKS], [CURSORRECHTS] Key Events / Symbolische Namen 36

37 Einfachste Abfrage von Zeichentasten mit: getkeychar getkeychar liefert stets den ASCII-Code der gedrückten Zeichentaste Sollen auch Funktionstasten abgefragt werden, muss die Methode keypressed überlagert werden. Mit der is-methoden können die Umschalttasten abgefragt werden. Das ist sinnvoll, um bei einer Funktionstaste herauszufinden, ob sie mit gedrückter Umschalttaste ausgelöst wurde oder nicht. Allerdings sind die Umschalttasten im Event-Modell des JDK 1.1 keine Tottasten, sondern liefern selbst ein Key-Event und lösen die Methode keypressed aus. 37

38 getkeycode getkeychar keytyped Zeichentaste: VK_UNDEFINED Zeichentaste: Taste als char Funktionstaste: -- Funktionstaste: -- keypressed Zeichentaste: VK_... Zeichentaste: Taste als char Funktionstaste: VK_... Funktionstaste: CHAR_UNDEFINED Die erste Zeile zeigt das Verhalten beim Aufruf der Listener-Methode keytyped an, die zweite beim Aufruf von keypressed. Die erste Spalte liefert dazu den Rückgabewert von getkeycode, die zweite den von getkeychar. Jedes Element beschreibt in der oberen Hälfte den Rückgabewert beim Drücken einer Zeichentaste und in der unteren den beim Drücken einer Funktionstaste. 38

39 Das folgende Beispiel demonstriert die Abfrage der Tastaturereignisse. Es implementiert keypressed, um die Funktionstasten [F1] bis [F3] und den Status der Umschalttasten abzufragen. Jeder Tastendruck wird in einen String übersetzt, in msg1 gespeichert und durch Aufruf von repaint auf dem Bildschirm angezeigt. Nach dem Loslassen der Taste wird die Anzeige wieder vom Bildschirm entfernt. Weiterhin wurde keytyped überlagert, um die Zeichentasten abzufragen. Jeder Tastendruck wird in msg2 gespeichert und ebenfalls auf dem Bildschirm angezeigt. Im Gegensatz zu den Funktionstasten bleibt die Ausgabe auch erhalten, wenn die Taste losgelassen wird. Bei jedem weiteren Tastendruck wird sie um ein Zeichen ergänzt. Zusätzlich werden die einzelnen Ereignisse auf der Konsole dokumentiert. Beispiel 39

40 Quelle: Ende 40

41 Ende 41

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

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

Mehr

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

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

Mehr

Grafikprogrammierung mit Java Teil 1/2

Grafikprogrammierung mit Java Teil 1/2 Grafikprogrammierung mit Java Teil 1/2 Martin Tischmann 15. Juni 2009 Inhaltsverzeichnis Das Abstract Windowing Toolkit Anlegen eines Fensters Die Methode paint Das grafische Koordinatensystem Schließen

Mehr

Eventhandling. Delegation model Eventhandler model

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

Mehr

11. GUI-Programmierung mit SWING Überblick

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

Mehr

Einführung in die OOP mit Java

Einführung in die OOP mit Java Einführung in die OOP mit Java Das Event-Hanlding Übersicht Event - Handling Das im JDK 1.1 Grundlagen Ereignistypen Ereignisquellen Adapterklassen für den Nachrichtenverkehr Variante1: Implementierung

Mehr

6. Eventhandling in Java

6. Eventhandling in Java 6. Eventhandling in Java OO-Graphics in Java Eventhandling in Java 143 Eventhandling in Java Bisher: OO-Grundlagen, Programmablauf, Zeichenmöglichkeiten, Anordnung von Bedienelementen. Was fehlt? Interaktivität!!!

Mehr

Einbindung der Tastatur

Einbindung der Tastatur Einbindung der Tastatur Auch die Tastatur kann man wie die Maus zur interaktiven Programmsteuerung verwenden. Bei der Maus ist stets klar, welche grafische Komponente bei einem Klick oder einer Bewegung

Mehr

NTB Druckdatum: 01.04.13 -

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

Mehr

Vorlesung Informatik II

Vorlesung Informatik II Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 07. Java: GUI und Ereignisbehandlung Teil

Mehr

Einstieg in die Informatik mit Java

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

Mehr

Kapitel 10. Event Handling 10.1 MVC

Kapitel 10. Event Handling 10.1 MVC Kapitel 10 Event Handling 10.1 MVC Erinnerung: Model - View - Controler (Smalltalk-80): Schema zum Implementieren graphischer Benutzeroberflächen Model: Klasse, die das funktionale Verhalten der Anwendung

Mehr

Objektorientierte Software-Entwicklung

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

Mehr

Design Patterns I. Observer, Listener & MVC

Design Patterns I. Observer, Listener & MVC Design Patterns I Observer, Listener & MVC Design Patterns I - Gliederung - Was sind Design Patterns? - Definition von Design Patterns - Entstehung - Nutzen & Verwendung - MVC - Model, View, Controller

Mehr

GRAFISCHE BENUTZERSCHNITTSTELLEN

GRAFISCHE BENUTZERSCHNITTSTELLEN Vorlesung 4.4 GRAFISCHE BENUTZERSCHNITTSTELLEN Dr. Philip Mayer # 1 GUIs Grafische Benutzerschnittstellen (GUIs, Graphical User Interfaces) bieten dem Benutzer Zugriff auf ein Anwendungssystem GUIs sind

Mehr

Grafik in Java. 1 Werkzeugauswahl. 2 Ereignisbehandlung (Listener bzw. Adapter) - 1 -

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

Mehr

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

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

Mehr

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

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.

Mehr

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

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

Mehr

Ein Manager mit CardLayout layout/cards.java

Ein Manager mit CardLayout layout/cards.java 201 Copyright 1996-1998 by Axel T. Schreiner. All Rights Reserved. Ein Manager mit CardLayout layout/cards.java CardLayout dient vor allem zum Aufbau von Inspektoren: In der gleichen Fläche soll je nach

Mehr

Graphische Benutzungsoberflächen

Graphische Benutzungsoberflächen Graphische Benutzungsoberflächen Graphische Benutzungsoberflächen (graphical user interfaces, GUI) dienen zur interaktiven Bedienung von Programmen, Ein- und Ausgabe mit graphischen Techniken und visuellen

Mehr

Spiele programmieren mit Lazarus, Java und Python

Spiele programmieren mit Lazarus, Java und Python Spiele programmieren mit 1. Einsatz eines Timers... 2 2. Kollision zweier Objekte... 3 3. Einbinden von Bildern für Spieler- oder Gegenspielerfiguren... 5 4. Bewegungen von Objekten (z.b. Bildern)... 6

Mehr

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

Grafikausgabe mit dem Abstract- Windowing-Toolkit. Eine Einführung Grafikausgabe mit dem Abstract- Windowing-Toolkit Eine Einführung Inhalt Einführung Grundlegende Eigenschaften des Abstract-Windowing- Toolkit (AWT) Grundlagen Grafikausgabe Linien zeichnen Rechtecke zeichnen

Mehr

Observer-Pattern (Java vs..net vs. Qt) Seminar Software-Entwurf Tim Rademacher

Observer-Pattern (Java vs..net vs. Qt) Seminar Software-Entwurf Tim Rademacher Observer-Pattern (Java vs..net vs. Qt) Seminar Software-Entwurf Tim Rademacher Gliederung Einführung in Design Patterns Das Observer-Pattern Ein Beispiel Das Observer-Pattern in Java Das Interface Observer

Mehr

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

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

Mehr

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

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

Mehr

Einführung in die Informatik - Teil 4b - Zeichnen mit der Maus im JBuilder

Einführung in die Informatik - Teil 4b - Zeichnen mit der Maus im JBuilder Eckart Modrow Zeichnen mit der Maus im JBuilder S. 1 Einführung in die Informatik - Teil 4b - Zeichnen mit der Maus im JBuilder Inhalt: 1. Arbeiten mit der Maus 2. Aufgaben Literaturhinweise: Küchlin/Weber:

Mehr

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen

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

Mehr

Graphical User Interfaces

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

Mehr

GUI Programmierung mit JAVA Swing

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

Mehr

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

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

Mehr

Probeklausur Informatik 2 Sommersemester 2013

Probeklausur Informatik 2 Sommersemester 2013 Probeklausur Informatik 2 Sommersemester 2013 1 Probeklausur Informatik 2 Sommersemester 2013 Name: Matrikelnummer: Hilfsmittel: Es sind alle schriftlichen Unterlagen, aber keine elektronischen Hilfsmittel

Mehr

Problemdefinition. Datum 26.Oktober Projektbezeichnung Softwareversion von Würfelpoker

Problemdefinition. Datum 26.Oktober Projektbezeichnung Softwareversion von Würfelpoker Problemdefinition Datum 26.Oktober 2004 Projektbezeichnung Softwareversion von Würfelpoker Autor Name: Ing. Andreas Schlichtinger Matrikelnummer: 92540 E-mail: [email protected] Kurzbeschreibung

Mehr

Diana Lange. Generative Gestaltung Die Processing Bibliothek

Diana Lange. Generative Gestaltung Die Processing Bibliothek Diana Lange Generative Gestaltung Die Processing Bibliothek Inhalt Diese Foliensammlung gibt eine Einsicht über processingspezifischen Anweisungen und Variablen. Einführung Alle Elemente, die wir dank

Mehr

Java Kurzreferenz Für Fortgeschrittene

Java Kurzreferenz Für Fortgeschrittene Java Kurzreferenz Für Fortgeschrittene 1. Initialisierung von Applets: Die Methode init Wenn ein Applet gestartet wird, werden immer zwei Methoden aufgerufen. Diese heissen init und start. Um gewisse Berechnungen

Mehr

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 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

Mehr

Liste Programmieren Java Überblick

Liste Programmieren Java Überblick Liste Programmieren Java Überblick 1 Was ist Java? 2 Klassen und Objekte 3 Vererbung 4 Schnittstellen 5 Innere Klassen 6 Exceptions 7 Funktionsbibliothek 8 Datenstrukturen und Algorithmen 9 Ein-/Ausgabe

Mehr

Das Interface ÁØ ÑÄ Ø Ò Ö verlangt die Implementierung

Das Interface ÁØ ÑÄ Ø Ò Ö verlangt die Implementierung ººº ÔÙ Ð ÚÓ Ô ÒØ Ö Ô µ ß º Ø ÓÐÓÖ ÓÐÓÖµ º ÐÐÊ Ø ½¼¼ ¼ ¾¼¼ ½¼¼µ Ð ÔÙ Ð ÚÓ Ø ÑËØ Ø Ò ÁØ Ñ Ú ÒØ µ ß ËØÖ Ò ËØÖ Ò µ º ØÁØ Ñ µ Û Ø º Ö Ø ¼µµ ß ³Û³ ÓÐÓÖ ÓÐÓÖºÛ Ø Ö ³Ö³ ÓÐÓÖ ÓÐÓÖºÖ Ö ³ ³ ÓÐÓÖ ÓÐÓÖº Ö Ò Ö ³ ³ ÓÐÓÖ

Mehr

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

(C)  Sortieren und Suchen mit Java.-AWT Seite 1 Sortieren sowie Suchen mit dem Halbierungsverfahren, programmiert mit der Java-AWT Funktion und Oberfläche sind in getrennten Klassen untergebracht. Die ganze Anwendung besteht damit aus drei Dateien:

Mehr

Ereignisverarbeitung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 12: GUI 2: AWT (2) - Ereignisverarbeitung

Ereignisverarbeitung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 12: GUI 2: AWT (2) - Ereignisverarbeitung Universität Osnabrück 1 3 - Objektorientierte Programmierung in Java Vorlesung 12: GUI 2: AWT (2) - SS 2006 Prof. Dr. F.M. Thiesing, FH Osnabrück Überblick Bisher haben wir nur Steuerelemente definiert

Mehr

Fenster in Java. von Stefanie Gerckens 1

Fenster in Java. von Stefanie Gerckens 1 Fenster in Java von Stefanie Gerckens 1 Inhaltsverzeichnis Die verschiedenen Fensterklassen Aufrufen und Schließen eines Fensters Visuelle Eigenschaften eines Fensters Anzeigezustand eines Fensters Fensterelemente

Mehr

Grundkurs Teil 2. Senioren-Computerclub-Dulach Bienleinstorstr. 22 Dienstags von 10:00 bis 12:00 Uhr G.B.

Grundkurs Teil 2. Senioren-Computerclub-Dulach Bienleinstorstr. 22 Dienstags von 10:00 bis 12:00 Uhr G.B. Grundkurs 9.10.2006 Teil 2 Senioren-Computerclub-Dulach Bienleinstorstr. 22 Dienstags von 10:00 bis 12:00 Uhr DAS SCHREIBMASCHINENFELD Das Schreibmaschinenfeld besteht aus Tasten mit numerischen, alphanumerischen

Mehr

Grundelemente objektorientierter Sprachen (1)

Grundelemente objektorientierter Sprachen (1) Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte

Mehr

Schwerpunkte. Java-Programmbeispiel: Quellen. Aufgabe. 15. Ereignisse (Events) Java-Beispiel: EyesApplet.java Eyes.java

Schwerpunkte. Java-Programmbeispiel: Quellen. Aufgabe. 15. Ereignisse (Events) Java-Beispiel: EyesApplet.java Eyes.java Schwerpunkte 15. Ereignisse (Events) Java-Beispiel:.java Eyes.java Ereignisbehandlung (Event Handling) Vom Problem zum Programm SW-Architektur: Programme mit graphischer Nutzeroberfläche Ein Beispiel zu

Mehr

Grundelemente objektorientierter Sprachen (1)

Grundelemente objektorientierter Sprachen (1) Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte

Mehr

Einführung in die Programmierung für Nebenfach Medieninformatik. Beat Rossmy, Michael Kirsch

Einführung in die Programmierung für Nebenfach Medieninformatik. Beat Rossmy, Michael Kirsch Einführung in die Programmierung für Nebenfach Medieninformatik Beat Rossmy, Michael Kirsch Direct Feedback - Socrative Eure Mitarbeit ist uns wichtig! Installiert euch dazu die kostenlose App Socrative

Mehr

Inhalt Hauptfenster... 2 Ereignisse verarbeiten... 6

Inhalt Hauptfenster... 2 Ereignisse verarbeiten... 6 - 1 - Inhalt 1 Hauptfenster... 2 1.1 Neues Projekt erstellen... 2 1.2 Komponenten einfügen... 4 1.2.1 Menü... 4 1.2.2 Symbolleiste... 5 1.2.3 Statuszeile... 5 1.2.4 Container mit Scrollbalken... 5 1.2.5

Mehr

AWT. Einfache AWT-Anwendung. Swing. Vorlesung 1. Handout S. 2. import java. awt. * ;

AWT. Einfache AWT-Anwendung. Swing. Vorlesung 1. Handout S. 2. import java. awt. * ; Programmieren I Martin Schultheiß Hochschule Darmstadt Sommersemester 2011 1 / 56 Grafische Benutzeroberflächen Container Menüs JComponent JLabel/JTextField Buttons Events und Listener 2 / 56 Einführung:

Mehr

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

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

Mehr

Delegates. «Delegierter» Methoden Schablone Funktionszeiger. Dr. Beatrice Amrhein

Delegates. «Delegierter» Methoden Schablone Funktionszeiger. Dr. Beatrice Amrhein Delegates «Delegierter» Methoden Schablone Funktionszeiger Dr. Beatrice Amrhein Überblick Definition eines Delegat Einfache Delegate Beispiele von Delegat-Anwendungen 2 Definition 3 Definition Ein Delegat

Mehr

Erstellen von speziellen Ereignissen in C#

Erstellen von speziellen Ereignissen in C# Erstellen von speziellen Ereignissen in C# Anhand eines Projekts, das demonstriert, wie spezielle Ereignisse ausgelöst werden und wie sie sich auf den verwendeten Code auswirken, zeigen wir Ihnen, wie

Mehr

Ereignisse Auf Benutzereingaben reagieren

Ereignisse Auf Benutzereingaben reagieren Ereignisse Auf Benutzereingaben reagieren JavaScript ermöglicht es dem Entwickler auf Ereignisse (engl.: events) im Browser zu reagieren. Auf diese Weise kann der Benutzer mit den Anwendungen interagieren,

Mehr

Objektorientierte Programmierung Studiengang Medieninformatik

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

Mehr

13 GUI = Graphical user interface

13 GUI = Graphical user interface Ein Großteil der Computerbedienung erfolgt über GUI 13 die grafische Benutzeroberfläche. Darunter versteht man die Technologie, wonach die Befehle an einen Computer nicht über Texteingabe sondern mittels

Mehr