6. Eventhandling in Java
|
|
|
- Hertha Kohler
- vor 10 Jahren
- Abrufe
Transkript
1 6. Eventhandling in Java OO-Graphics in Java Eventhandling in Java 143
2 Eventhandling in Java Bisher: OO-Grundlagen, Programmablauf, Zeichenmöglichkeiten, Anordnung von Bedienelementen. Was fehlt? Interaktivität!!! OO-Graphics in Java Eventhandling in Java 144
3 Worauf ein Programm reagieren muss Low-Level: Tastatureingaben, Maus-Ereignisse, Timer-Ereignisse. High-Level: Fenster schliessen/öffnen, Grössenveränderungen, Knopf auf Bildschirm gedrückt, Text editiert, OO-Graphics in Java Eventhandling in Java 145
4 Java 1.1 vs. Java 1.0 Achtung (wichtige Warnung): Das Eventhandling von Java 1.1 unterscheidet sich wesentlich vom Eventhandling in Java 1.0. Java 1.0 Stil ist in Java 1.1 zwar noch möglich, aber nicht empfohlen (deprecated). Im folgenden wird Java 1.1 Stil vermittelt. Java 1.1 wird von Netscape 4.06, von Internet Explorer 4.01 und von Hotjava (Sun Browser) unterstützt. OO-Graphics in Java Eventhandling in Java 146
5 Event Event: Das Eintreten eines Ereignisses, auf welches das Programm reagieren muss (z.b. Tastendruck, Mausbewegung, ). Event-Quelle: Events werden immer dem Component-Objekt zugeordnet, in dem sie entstehen der Event-Quelle. Event-Objekt: Das Auftreten eines Events ist verbunden mit der Erzeugung eines Objektes. Dieses Objekt gehört einer der Unterklassen von AWTEvent an. Es enthält alle notwendigen Informationen über das Event. Event-Listener: Component-Objekte speichern eine Liste von EventListener-Objekten ab. Dies sind Objekte, die über das Auftreten eines Events benachrichtigt werden sollen. Die Listener Objekte sind jeweils spezialisiert auf bestimmte Event-Klassen. Event-Action: Beim Auftreten eines Events veranlasst die Event- Quelle den Aufruf einer standardisierten (dem Event zugeordneten) Methode bei allen für diesen Event-Typ angemeldeten Listener-Objekten. Der Aufruf dieser Methoden ist dem Event selbst gleichzusetzen! OO-Graphics in Java Eventhandling in Java 147
6 Das awt.event package Object java.lang EventObject java.util AWTEvent AWTEventMulticaster Serializable java.io-objects Thread java.lang java.awt-events s ActionListener AdjustmentListener Event EventQueue EventDispatchThread local to package EventQueueItem local to package java.awt.event , Charles L. Perkins ComponentListener ComponentAdapter ContainerListener ContainerAdapter FocusListener FocusAdapter EventListener java.util ItemListener KeyListener KeyAdapter MouseAdapter MouseListener MouseMotionAdapter MouseMotionListener WindowAdapter TextListener WindowListener ActionEvent ContainerEvent Object java.lang EventObject java.util AWTEvent java.awt-events AdjustmentEvent ComponentEvent ItemEvent FocusEvent InputEvent PaintEvent KeyEvent MouseEvent Serializable java.io-objects TextEvent WindowEvent OO-Graphics in Java Eventhandling in Java 148
7 Event-Objekte AWTEvent-Objekt ist ein Objekt welches das Auftreten eines Ereignisses beschreibt, enthält alle notwendigen Informationen, die das Ereignis betreffen (Wo? Wann? Wer? ), ist quasi ein Brief von der Ereignisquelle an alle Interessenten. besitzt zahlreiche Unterklassen, die spezialisierte Ereignisse beschreiben (MouseEvent, MouseMotionEvent, KeyEvent, WindowEvent, ActionEvent, ) OO-Graphics in Java Eventhandling in Java 149
8 Event Zyklus in Java-1.1 Erzeugung: Component-Objekte sind die Event- Quellen. Tritt ein zu einer Component gehöriges Ereignis auf (z.b. Knopf-gedrückt auf einem Button oder Mouse-Drag in einer Canvas), so wird ein entsprechendes AWTEvent-Objekt erzeugt. Verschicken: Jede Component hat eine Liste von EventListener-Objekten. An diese wird das AWTEvent verschickt (d.h. bestimmte Methoden werden aufgerufen). Verarbeitung: Die EventListener-Objekte müssen Methoden definieren, die auf das Verschicken des Ereignisses reagieren können. Ein EventListener kann ein Event als abgearbeitet markieren. Consumed: Ein AWTEvent-Objekt ist aufgebraucht (consumed), wenn es an alle potentiellen Listener verschickt wurde. OO-Graphics in Java Eventhandling in Java 150
9 Was passiert, wenn ein Knopf gedrückt wird? Press Me Knopf mittels Maus aktiviert Button Mouseclick veranlasst den Button ein AWTEvent: ActionEvent zu erzeugen. Dies Event wird an alle ActionEventListener des Buttons geschickt listener.actionperformed(event) event ActionEvent Hat alle Information bzgl. Event- u.eventquelle und einen Identifier der ausgefuehrten Aktion. MyAction- Listener implementiert die Methode actionperformed() in welcher festgelegt ist, was bei Eintreten des Events passieren soll Die Klasse MyActionListener ist das einzige selbstgeschriebene Objekt in diesem Beispiel. OO-Graphics in Java Eventhandling in Java 151
10 MyActionListener Im selbst geschriebenen Code von MyActionListener ist festgelegt, was beim Auftreten eines ActionEvents geschehen soll. Die Klasse MyActionListener implementiert das Interface ActionListener. Dies erzwingt, dass in der Klasse MyActionListener die Methode actionperformed implementiert ist. Source-Code Gerüst: import java.awt.event.*; public class MyActionListener implements ActionListener{ public void actionperformed(actionevent e){ OO-Graphics in Java Eventhandling in Java 152
11 Event Methodenaufruf Ein Event ist der Aufruf einer Methode in einem EventListener. Bei dem Methodenaufruf wird ein Objekt der Klasse AWTEvent als Parameter übergeben. Das AWTEvent-Objekt enthält weitere Information über das eingetretene Event. OO-Graphics in Java Eventhandling in Java 153
12 Programm-Beispiel für ActionEvent Ziel: Ein Button, der eine Zählvariable hochzählt und deren Inhalt auf dem Bildschirm anzeigt. Code für das Applet: import java.awt.*; import java.awt.event.*; import java.applet.*; // verwendete Packages public class CountApplet extends Applet { public int count=0; public Label label = new Label("0"); public void init() { setlayout(new FlowLayout()); Button b = new Button("Press Me"); b.addactionlistener(new MyActionListener(this)); add(b); add(label); // <---ADD LISTENER Hier werden in der Initialisierung lediglich der Button und das Label zum Anzeigen bereitgestellt. Der Button erhält einen selbstdefinierten ActionListener namens MyActionListener. OO-Graphics in Java Eventhandling in Java 154
13 Der Code für MyActionListener Der Listener MyActionListener erhöht beim Auftreten des ActionEvents die Zählervariable count des Applets. Dann veranlasst er, dass der zugehörige Text erzeugt wird, und erzwingt ein repaint des Applets. Code für den Listener: import java.awt.event.*; public class MyActionListener implements ActionListener{ private CountApplet app; MyActionListener(CountApplet app) { this.app=app; public void actionperformed(actionevent e){ app.count++; String s=(new Integer(app.count)).toString(); app.label.settext(s); app.label.invalidate(); // Layout ist ungültig app.validate(); // erzwinge neues Layout app.repaint(); // Zeichenanforderung Press Me 5 OO-Graphics in Java Eventhandling in Java 155
14 Erweiterte Version zum Auf- und Abzählen public class CountApplet extends Applet { public int count=0; public Label label = new Label("0"); public void init() { setlayout(new FlowLayout()); Button b1 = new Button("Increment"); b1.addactionlistener(new MyActionListener(1,this)); Button b2 = new Button("Decrement"); b2.addactionlistener(new MyActionListener(-1,this)); add(b1); add(b2); add(label); public class MyActionListener implements ActionListener{ CountApplet app; private int step; MyActionListener(int st,countapplet app) { this.app =app; step=st; public void actionperformed(actionevent e){ app.count=app.count+step; String s=(new Integer(app.count)).toString(); app.label.settext(s); app.label.invalidate(); app.validate(); Increment Decrement 5 app.repaint(); OO-Graphics in Java Eventhandling in Java 156
15 Übergabe von Information Im Beispiel des Applets CountApplet kam es lediglich darauf an, dass überhaupt ein ActionEvent auftrat. Es wurde keine Information aus dem Event-Objekt entnommen. (In unserer Briefmetapher : Allein das Eintreffen des Briefes löste die Reaktion (hochzählen) aus. Der Brief musste gar nicht erst gelesen werden.) Oftmals ist es allerdings notwendig, die im Event übergebene Information abzufragen. Als Informationsbehälter stellt AWTEvent diverse spezialisierte Unterklassen bereit. OO-Graphics in Java Eventhandling in Java 157
16 Count-Applet mit Lesen des Events Die folgende Increment/Decrement-Version stellt durch Lesen der Button-Beschriftung fest, ob ab- oder aufgezählt werden soll. Code des MouseListeners: import java.awt.event.*; public class MyActionListener implements ActionListener{ private CountApplet app; MyActionListener(CountApplet app){ this.app=app; public void actionperformed(actionevent e){ if (e.getactioncommand().equals("increment")) {//<<<< LESEN app.count=app.count+1; if (e.getactioncommand().equals("decrement")) {//<<<< LESEN app.count=app.count-1; String s=(new Integer(app.count)).toString(); app.label.settext(s); app.label.invalidate(); app.validate(); app.repaint(); OO-Graphics in Java Eventhandling in Java 158
17 Unterklassen von AWTEvent Object ActionEvent ContainerEvent AdjustmentEvent FocusEvent MouseEvent AWTEvent ComponentEvent InputEvent KeyEvent ItemEvent PaintEvent TextEvent WindowEvent instantiierbares Objekt nicht instantiierbares abstraktes Objekt Die Unterklassen von AWTEvent sind spezialisierte Datenbehälter, für die verschiedenen Ereignisse. OO-Graphics in Java Eventhandling in Java 159
18 Beispiel: Methoden von MouseEvent (I) MouseEvent hat in der Klassenhierarchie die Position AWTEvent ComponentEvent InputEvent MouseEvent MouseEvent besitzt u.a. die folgenden Methoden: getclickcount(): Anzahl der Mouseclicks. getpoint(): x y -Position des Events relativ zur Quell-component. getx(): x-komponente des Events relativ zur Quell-component. gety(): y-komponente des Events relativ zur Quell-component. ispopuptrigger(): Erzeugt das Event ein Pop-Up-Menu? translatepoint(int, int): Verändert das Koordinatensystem des Events. OO-Graphics in Java Eventhandling in Java 160
19 Beispiel: Methoden von MouseEvent (II) Die Oberklassen vom MouseEvent stellen zudem u.a. folgende Methoden zur Verfügung: InputEvent: getmodifiers(): Liefert Modifizier-Flags für das Ereignis. getwhen(): Systemzeit zu der das Ereignis stattfand. isaltdown(), iscontroldown(), ismetadown(), isshiftdown(): Wurden modifizierende Tasten gedrückt? ComponentEvent: getcomponent(): Quell-Component, die das Event verursacht hat. AWTEvent: getid(): Event-Typ Event: getsource(): Event-Quelle OO-Graphics in Java Eventhandling in Java 161
20 Listener Listener sind Interfaces welche bestimmte Ereignisklassen gegeneinander abgrenzen (z.b. die Klasse der ActionEvents, MouseEvents, ), legen Methoden fest, auf die man für eine Ereignisklasse reagieren können muss (z.b. actionperformed() für ActionEvents), hat folgende Unterinterfaces: ActionListener, AdjustmentListener, ComponentListener, ContainerListener, FocusListener, ItemListener, KeyListener, MouseListener, MouseMotionListener, TextListener, WindowListener. Components-Objekte sind mit addxlistener- Methoden ausgestattet, mittels derer ein XListener angemeldet werden kann (z.b. addactionlistener(mylistener) um mylistener als ActionListener anzumelden). OO-Graphics in Java Eventhandling in Java 162
21 Methoden der Listener Listener Methoden mögliche Components ActionListener actionperformed Button List MenuItem TextField AdjustmentListener adjustmentvaluechanged Scrollbar ComponentListener componenthidden Component componentmoved componentresized componentshown ContainerListener componentadded Container componentremoved FocusListener focusgained Component focuslost ItemListener itemstatechanged Checkbox CheckboxMenuItem Choice List KeyListener keypressed Component keyreleased keytyped MouseListener mouseclicked Component mouseentered mouseexited mousepressed mousereleased MouseMotionListener mousedragged Component mousemoved TextListener textvaluechanged TextComponent WindowListener windowactivated Window windowclosed windowclosing windowdeactivated windowdeiconified windowiconified windowopened OO-Graphics in Java Eventhandling in Java 163
22 Beispiel: Ein Draw-Applet (erste Version) Aufgabe: Ein Applet DrawApplet, welches eine Zeichenoberfläche besitzt, auf die man mit der Maus zeichnen kann. Das Zeichnen soll nur bei gedrückter Maustaste erfolgen. Erster Ansatz (Applet -Code): import java.awt.*; import java.awt.event.*; import java.applet.*; public class DrawApplet extends Applet { public Canvas canv = new Canvas(); public void init() { setlayout(new BorderLayout()); canv.setsize(400,400); canv.setbackground(color.blue.darker()); canv.setforeground(color.yellow); add("center",canv); MyMouseListener listener = new MyMouseListener(); canv.addmouselistener(listener); canv.addmousemotionlistener(listener); OO-Graphics in Java Eventhandling in Java 164
23 Der MouseListener (I) import java.awt.*; import java.awt.event.*; public class MyMouseListener implements MouseListener, MouseMotionListener{ public Point p=new Point(0,0); MyMouseListener() { public void mouseclicked(mouseevent e){ public void mouseentered(mouseevent e){ public void mouseexited(mouseevent e){ public void mousemoved(mouseevent e){ public void mousereleased(mouseevent e){ public void mousepressed(mouseevent e){ p= new Point(e.getPoint()); public void mousedragged(mouseevent e){ Canvas canv = (Canvas)e.getSource(); Graphics g = canv.getgraphics(); g.drawline(p.x,p.y,e.getx(),e.gety()); p= new Point(e.getPoint()); Ein mousedragged Ereignis bewirkt sofortiges Malen auf der appleteigenen Canvas canv. OO-Graphics in Java Eventhandling in Java 165
24 Kritik an der ersten Version Die gemalte Zeichnung ist nirgends abgespeichert. Ein paint (welches vom Window-Manager jederzeit geschickt werden kann) bewirkt ein sofortiges Löschen der Zeichnung. Abhilfe: Die Zeichnung wird irgendwo gespeichert (entweder als bitmap oder in Form der Koordinaten der gemalten Linienstücke). Man schreibt eine Unterklasse MyCanvas der vom AWT bereitgestellten Klasse Canvas. Die Unterklasse MyCanvas besitzt eine eigene paint()-methode, die für das Malen der bisherigen Zeichnung sorgt. OO-Graphics in Java Eventhandling in Java 166
25 Draw-Applet zweite Version Code für DrawApplet und für MyCanvas: import... public class DrawApplet extends Applet { public MyCanvas canv = new MyCanvas(); // <<<< AENDERUNG!!!! public void init() { setlayout(new BorderLayout()); canv.setsize(400,400); canv.setbackground(color.blue.darker()); canv.setforeground(color.yellow); add("center",canv); MyMouseListener listener= new MyMouseListener(canv);//<<< AENDERUNG canv.addmouselistener(listener); canv.addmousemotionlistener(listener); import java.awt.*; import java.util.*; public class MyCanvas extends Canvas { public Vector startpoints = new Vector(); public Vector endpoints = new Vector(); public void paint(graphics g) { for (int i=0;i<startpoints.size();i=i+1){ Point p1=(point)startpoints.elementat(i); Point p2=(point)endpoints.elementat(i); g.drawline(p1.x,p1.y,p2.x,p2.y); // Lokaler Speicher // Lokaler Speicher // Zeichenmethode OO-Graphics in Java Eventhandling in Java 167
26 Der MouseListener (II) import... public class MyMouseListener implements MouseListener, MouseMotionListener{ private MyCanvas canv; // <<<< AENDERUNG!!!! public Point p=new Point(0,0); MyMouseListener(MyCanvas a){ // <<<< AENDERUNG!!!! canv=a; public void mouseclicked(mouseevent e){ public void mouseentered(mouseevent e){ public void mouseexited(mouseevent e){ public void mousemoved(mouseevent e){ public void mousereleased(mouseevent e){ public void mousepressed(mouseevent e){ p= new Point(e.getPoint()); public void mousedragged(mouseevent e){ canv.startpoints.addelement(p); // Abspeichern statt Zeichnen p= new Point(e.getPoint()); canv.endpoints.addelement(p); // Abspeichern statt Zeichnen canv.repaint(); // Zeichnen erzwingen Der wesentliche Unterschied gegenüber der ersten Version besteht darin, dass nicht mehr direkt auf einer Canvas gemalt wird. Vielmehr wird die Zeicheninformation nur noch durch MyMouseListener in MyCanvas abgespeichert und von ihr bei Bedarf gemalt. OO-Graphics in Java Eventhandling in Java 168
27 Kritik an der zweiten Version Der Bildschirm flackert!!! Durch die geänderte Zeichenstrategie ist nun bei jedem einzelnen mousedragged Ereignis der (schrittweise) Aufbau der kompletten Zeichnung zu sehen. Die geschieht im allgeneinen zwar sehr schnell, ist bei aufwendigeren Zeichnungen aber als Flackern wahrnehmbar. Abhilfe: Einführung von double-buffering. Der Bildaufbau erfolgt unsichtbar im Hintergrund auf einem eigens dafür bereitgestellten Stück Speicher (bitmap). Die notwendigen Änderungen können alle lokal in der Klasse MyCanvas vorgenommen werden. OO-Graphics in Java Eventhandling in Java 169
28 Double buffering Vordergrund Bildaufbau kopieren Das neue Bild wird auf einer bitmap (im Speicher) gemalt. Erst, wenn das Bild fertig ist, wird es im sichtbaren Fenster dargestellt. OO-Graphics in Java Eventhandling in Java 170
29 MyCanvas mit double-buffering public class MyCanvas extends Canvas { public Vector startpoints = new Vector(); public Vector endpoints = new Vector(); int oldw, oldh; Image backimage; Graphics backg; //Hintergrundbild //Graphics von backimage public void paint(graphics g) { Dimension d = getsize(); if (d.width!= oldw d.height!= oldh ) { //Neuer Speicher notwendig? if (backimage!= null) backimage.flush(); backimage = createimage(d.width,d.height); backg = backimage.getgraphics(); oldw = d.width; oldh = d.height; backg = backimage.getgraphics(); backg.setcolor(getbackground()); backg.fillrect(0,0,oldw,oldh); backg.setcolor(getforeground()); for (int i=0;i<startpoints.size();i=i+1){ Point p1=(point)startpoints.elementat(i); Point p2=(point)endpoints.elementat(i); backg.drawline(p1.x,p1.y,p2.x,p2.y); g.drawimage(backimage,0,0,this); //Alles im Hintergrund malen //nach vorne kopieren public void update(graphics g) { //muss ueberschrieben werden paint OO-Graphics in Java Eventhandling in Java 171
30 Checkbox CheckboxGroup Oft ist es notwendig mehrere Schalter zu erzeugen, mittels derer man zwischen verschiedenen Betriebszuständen des Programmes umschalten kann. Der folgende Code erzeugt Radio-Button Verhalten: import java.applet.applet; import java.awt.*; public class CheckBoxApplet extends Applet { public void init() { setbackground(color.lightgray); Panel controls = new Panel(new GridLayout(1,3)); CheckboxGroup cg = new CheckboxGroup(); Checkbox a = new Checkbox("First" ); a.setcheckboxgroup(cg); Checkbox b = new Checkbox("Second" ); b.setcheckboxgroup(cg); Checkbox c = new Checkbox("Third" ); c.setcheckboxgroup(cg); a.setstate(true); controls.add(a); controls.add(b); controls.add(c); add(controls); OO-Graphics in Java Eventhandling in Java 172
31 Eventhandling bei Radio-Buttons Aufgabe: Drei Knöpfe mit Radio-Button Verhalten sollen jeweils individuellen Text im Fenster anzeigen. import java.applet.applet; import java.awt.*; public class CheckBoxApplet extends Applet { public void init() { setbackground(color.lightgray); Label label = new Label("?????????????????"); label.setfont(new Font("Helvetica",Font.BOLD,36)); Panel controls = new Panel(new GridLayout(1,3)); MyCheckboxGroup cg = new MyCheckboxGroup(); MyCheckbox a = new MyCheckbox("First","Erster",label); a.setcheckboxgroup(cg); MyCheckbox b = new MyCheckbox("Second","Zweiter",label ); b.setcheckboxgroup(cg); MyCheckbox c = new MyCheckbox("Third","Dritter",label ); c.setcheckboxgroup(cg); a.setstate(true); controls.add(a); controls.add(b); controls.add(c); add(controls); add(label); OO-Graphics in Java Eventhandling in Java 173
32 Code für MyCheckbox import java.awt.*; public class MyCheckbox extends Checkbox { String pt; Label l; private MyCheckbox() { public MyCheckbox(String text, String printtext, Label label) { setlabel(text); pt=printtext; l=label; public void deselect( ) { // Hier darf man eigenes // Verhalten spezifizieren public void select( ) { l.settext(pt); // Hier darf man eigenes // Verhalten spezifizieren Die Checkbox wird mit einem select/deselect- Mechanismus ausgestatted. Die Steuerung dieses Mechanismus wird von der CheckboxGroup übernommen. (Hiermit wird zwar das interne Eventhandling umgangen, dies ist jedoch sinnvoll. Auf diese Weise wird ein deselect-verhalten ermöglicht.) OO-Graphics in Java Eventhandling in Java 174
33 Code für MyCheckboxGroup import java.awt.*; import java.awt.event.*; class MyCheckboxGroup extends CheckboxGroup { public synchronized void setselectedcheckbox(checkbox checkbox) { Checkbox c2 =getselectedcheckbox(); if (c2!= null && c2 instanceof MyCheckbox) { ((MyCheckbox)c2).deselect(); super.setselectedcheckbox(checkbox); ((MyCheckbox)checkbox).select(); Die setselectedcheckbox-methode wird vom AWT beim Drücken eines Knopfs der Buttongroup aufgerufen. Dies ist eine geeignete Stelle um den select/deselect- Mechanismus einzufügen, indem wir das normale Verhalten der Methode setselectedcheckbox aus der Klasse CheckboxGroup mit unserem speziellen Verhalten überschreiben. OO-Graphics in Java Eventhandling in Java 175
34 OO-Graphics in Java Eventhandling in Java 176
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
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
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
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
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
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
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
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
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
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
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
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
Das Interface ÁØ ÑÄ Ø Ò Ö verlangt die Implementierung
ººº ÔÙ Ð ÚÓ Ô ÒØ Ö Ô µ ß º Ø ÓÐÓÖ ÓÐÓÖµ º ÐÐÊ Ø ½¼¼ ¼ ¾¼¼ ½¼¼µ Ð ÔÙ Ð ÚÓ Ø ÑËØ Ø Ò ÁØ Ñ Ú ÒØ µ ß ËØÖ Ò ËØÖ Ò µ º ØÁØ Ñ µ Û Ø º Ö Ø ¼µµ ß ³Û³ ÓÐÓÖ ÓÐÓÖºÛ Ø Ö ³Ö³ ÓÐÓÖ ÓÐÓÖºÖ Ö ³ ³ ÓÐÓÖ ÓÐÓÖº Ö Ò Ö ³ ³ ÓÐÓÖ
GUI Programmierung in Java
vs und niemals mischen! Daher muss man sich für eine Klasse entscheiden 1 (Abstract Window Toolkit) schwergewichtige Alle Elemente werden vom Betriebssytem gemalt sehen aus wie alle anderen Programme auf
Applets. Applets. Applets. Applet: Java-Programm Eingebettet in einer HTML-Seite Ausführung von einem Java-fähigen Web-Browser oder sog.
Johann Wolfgang Goethe-Universität Professur für Graphische Datenverarbeitung Fachbereich Informatik und Mathematik Prof. Dr. Detlef Krömker Applet: Java-Programm Eingebettet in einer HTML-Seite Ausführung
Grundlagen der Programmierung APPLETS
Grundlagen der Programmierung APPLETS Inhalt dieser Einheit Java-Applets: Java-Applets Vor- und Nachteile Sicherheitskonzepte Methoden Einbetten in HTML Graphical User Interface 2 Java Applets Applets
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
Einführung in JAVA. Low-Level-Events
Einführung in JAVA Low-Level-Events 1 Übersicht: - Window-Events - Component-Events - Mouse-Events - MouseMotion-Events - Focus-Events - Key-Events Inhaltverzeichnis 2 Übersicht 3 Übersicht 4 Window-Events:
Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...
PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:
Java I Vorlesung 11 Graphische Oberflächen mit Swing
Java I Vorlesung 11 Graphische Oberflächen mit Swing 5.7.2004 Swing Komponenten Layout-Manager Events Swing und Threads Die Java-Plattform 2 Die Java-Plattform 3 "Hello World" in Swing HelloWorldS.java
Objektorientierte Programmierung. Kapitel 12: Interfaces
12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/
Schritt 1 - Ein Spielfeld
Schritt 1 - Ein Spielfeld Wir beginnen mit zwei einfachen Java-Klassen, dem eigentlichen Spielfeld und dem Applet zum Anzeigen des Spielfeldes (und später der Buttons und der anderen Bedienelemente). Hier
Objektorientierte Programmierung
Objektorientierte Programmierung Exkurs: Graphische Benutzeroberflächen FH Braunschweig/Wolfenbüttel Sommersemester 2009 1 / 22 Gliederung I Wiederholung Klassen, Objektorientierung (Kapitel 10,11) Exkurs:
Abteilung Informatik, JFC/Swing 2004 Diego Schmidlin V2.2
Inhalt 1. Printing API 1. Übersicht 2. Vorgehen 3. Beispiel 2. Klasse PrintUtils 3. Mehrere Seiten drucken Folie 1 Lernziele Sie wissen, wie Sie Swing-Komponenten ausdrucken können Sie kennen den Aufbau
Das Model View Controller (MVC) Konzept
Das Model View Controller (MVC) Konzept Ziel: Erhöhung der Flexibilität und Reduktion der Komplexität von GUI-Programmen durch Standard- Struktur (MVC-Pattern). Geht zurück auf Smalltalk. View 1 View 2
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
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
Java Projekt: Tic Tac Toe + GUI
Java Projekt: Tic Tac Toe + GUI Rechnerpraktikum aus Programmierung im WS 2005/06 unter der Leitung von Dr. Michael Hahsler Tadeh Amirian (h0253821) 10.01.2006 1) Problemdefinition Beim TicTacToe Spiel
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
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
Hochschule der Medien Prof. Uwe Schulz 14. Juli 2010 Klausur Informatik, EDV-Nr. 40301 Seite 1 von 5. Teil 2: Aufgaben
Hochschule der Medien Prof Uwe Schulz 14 Juli 2010 Klausur Informatik, EDV-Nr 40301 Seite 1 von 5 Name: Matr Nr: Teil 2: Aufgaben Hilfsmittel: alle außer tragbare Computer und Nachbar Bearbeitungszeit:
Einführung in die Programmierung
Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In
Java: Vererbung. Teil 3: super() www.informatikzentrale.de
Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und
Beschreibung E-Mail Regeln z.b. Abwesenheitsmeldung und Weiterleitung
Outlook Weiterleitungen & Abwesenheitsmeldungen Seite 1 von 6 Beschreibung E-Mail Regeln z.b. Abwesenheitsmeldung und Weiterleitung Erstellt: Quelle: 3.12.09/MM \\rsiag-s3aad\install\vnc\email Weiterleitung
Anwendungsbeispiele Buchhaltung
Rechnungen erstellen mit Webling Webling ist ein Produkt der Firma: Inhaltsverzeichnis 1 Rechnungen erstellen mit Webling 1.1 Rechnung erstellen und ausdrucken 1.2 Rechnung mit Einzahlungsschein erstellen
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
Um ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift.
Briefe Schreiben - Arbeiten mit Word-Steuerformaten Ab der Version 5.1 stellt die BüroWARE über die Word-Steuerformate eine einfache Methode dar, Briefe sowie Serienbriefe mit Hilfe der Korrespondenzverwaltung
Zählen von Objekten einer bestimmten Klasse
Zählen von Objekten einer bestimmten Klasse Ziel, Inhalt Zur Übung versuchen wir eine Klasse zu schreiben, mit der es möglich ist Objekte einer bestimmten Klasse zu zählen. Wir werden den ++ und den --
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
Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.
In einer Website haben Seiten oft das gleiche Layout. Speziell beim Einsatz von Tabellen, in denen die Navigation auf der linken oder rechten Seite, oben oder unten eingesetzt wird. Diese Anteile der Website
Änderung des Portals zur MesseCard-Abrechnung
Änderung des Portals zur MesseCard-Abrechnung Seit dem 1. Februar 2010 steht das neue Portal zur Abrechnung der MesseCard zur Verfügung. Dieses neue Portal hält viele Neuerungen für Sie bereit: Das Portal
Applet Firewall und Freigabe der Objekte
Hauptseminar Applet Firewall und Freigabe der Objekte Nachweis von Sicherheitseigenschaften für JavaCard Jin Zhou Ein Überblick über diesen Vortrag Applet Firewall Kontext JCRE Entry Point Objekt Shareable
3. auf Symbol klicken. 2010 erstellt von Erika Völkel
Ein Tastendruck (oder Klick) und der Bildschirm (oder das Fenster) wird ausgedruckt oder abgespeichert. 1. Download (Freeware) im Internet: www.chip.de eingeben 2. bei Suche: hardcopy eingeben 3. auf Symbol
Zentrale Objekte zur Programmierung graphischer Benutzeroberflächen (GUI)
1 JAVA für Bauingenieure Alexander Karakas SS 2008 Zentrale Objekte zur Programmierung graphischer Benutzeroberflächen (GUI) 21.05.2008 2 Was ist ein(e) GUI? GUI = Graphical User Interface = Graphische
Swing Lernen am Code Teil 1
Swing Lernen am Code Teil 1 Swing Fenster erzeugen import java.awt.* import java.awt.event.* import javax.swing.* class SwingDemo{ static JFrame Fenster; public static void main(string[] args){ } } Fenster
Kleines Handbuch zur Fotogalerie der Pixel AG
1 1. Anmelden an der Galerie Um mit der Galerie arbeiten zu können muss man sich zuerst anmelden. Aufrufen der Galerie entweder über die Homepage (www.pixel-ag-bottwartal.de) oder über den direkten Link
Updatebeschreibung JAVA Version 3.6 und Internet Version 1.2
Updatebeschreibung JAVA Version 3.6 und Internet Version 1.2 Hier finden Sie die Beschreibung der letzten Änderungen und Aktualisierungen. Bei Fragen und Anregungen steht das EDI-Real-Team unter +43 732
Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar 2015. ZID Dezentrale Systeme
Novell Client Anleitung zur Verfügung gestellt durch: ZID Dezentrale Systeme Februar 2015 Seite 2 von 8 Mit der Einführung von Windows 7 hat sich die Novell-Anmeldung sehr stark verändert. Der Novell Client
DIE ZUKUNFT BEGINNT JETZT: ELEKTRONISCHE UNTERSCHRIFT
DIE ZUKUNFT BEGINNT JETZT: ELEKTRONISCHE UNTERSCHRIFT Neue Dokumente hochladen Neue Dokumente hochladen Loggen Sie sich auf unserer Homepage ein, um neue Dokumente bei insign hochzuladen. Neue Dokumente
SharePoint Demonstration
SharePoint Demonstration Was zeigt die Demonstration? Diese Demonstration soll den modernen Zugriff auf Daten und Informationen veranschaulichen und zeigen welche Vorteile sich dadurch in der Zusammenarbeit
II. Daten sichern und wiederherstellen 1. Daten sichern
II. Daten sichern und wiederherstellen 1. Daten sichern Mit der Datensicherung können Ihre Schläge und die selbst erstellten Listen in einem speziellen Ordner gespeichert werden. Über die Funktion Daten
Abschnitt 12: Strukturierung von Java-Programmen: Packages
Abschnitt 12: Strukturierung von Java-Programmen: Packages 12. Strukturierung von Java-Programmen: Packages 12.1 Strukturierung durch Packages 12.2 Zugriffsspezifikationen 12.3 Zusammenfassung 12 Strukturierung
Urlaubsregel in David
Urlaubsregel in David Inhaltsverzeichnis KlickDown Beitrag von Tobit...3 Präambel...3 Benachrichtigung externer Absender...3 Erstellen oder Anpassen des Anworttextes...3 Erstellen oder Anpassen der Auto-Reply-Regel...5
Der PDF-Druck. EDIORG Software GmbH, Linz
Der PDF-Druck Der Makler hat nun auch die Möglichkeit, ein als PDF generiertes Angebot per E-Mail 1. als Anhang oder 2. als Link zu versenden oder 3. wie bisher das PDF über WORD zu generieren. Es soll
Persönliches Adressbuch
Persönliches Adressbuch Persönliches Adressbuch Seite 1 Persönliches Adressbuch Seite 2 Inhaltsverzeichnis 1. WICHTIGE INFORMATIONEN ZUR BEDIENUNG VON CUMULUS 4 2. ALLGEMEINE INFORMATIONEN ZUM PERSÖNLICHEN
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
KURZANLEITUNG CLOUD OBJECT STORAGE
KURZANLEITUNG CLOUD OBJECT STORAGE Version 1.12 01.07.2014 SEITE _ 2 INHALTSVERZEICHNIS 1. Einleitung... Seite 03 2. Anmelden am Cloud&Heat Dashboard... Seite 04 3. Anlegen eines Containers... Seite 05
Erstellen eines Screenshot
Blatt 1 von 5 Erstellen eines Screenshot Einige Support-Probleme lassen sich besser verdeutlichen, wenn der Supportmitarbeiter die aktuelle Bildschirmansicht des Benutzers sieht. Hierzu bietet Windows
Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI
Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer
Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen
Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders
Agentur für Werbung & Internet. Schritt für Schritt: Newsletter mit WebEdition versenden
Agentur für Werbung & Internet Schritt für Schritt: Newsletter mit WebEdition versenden E-Mail-Adresse im Control Panel einrichten Inhalt Vorwort 3 Einstellungen im Reiter «Eigenschaften» 4 Einstellungen
Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten
Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten In dem Virtuellen Seminarordner werden für die Teilnehmerinnen und Teilnehmer des Seminars alle für das Seminar wichtigen Informationen,
Dieser Ablauf soll eine Hilfe für die tägliche Arbeit mit der SMS Bestätigung im Millennium darstellen.
Millennium SMS Service Schnellübersicht Seite 1 von 6 1. Tägliche Arbeiten mit der SMS Bestätigung Dieser Ablauf soll eine Hilfe für die tägliche Arbeit mit der SMS Bestätigung im Millennium darstellen.
Java Einführung Collections
Java Einführung Collections Inhalt dieser Einheit Behälterklassen, die in der Java API bereitgestellt werden Wiederholung Array Collections (Vector, List, Set) Map 2 Wiederholung Array a[0] a[1] a[2] a[3]...
Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1
Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1 Wenn der Name nicht gerade www.buch.de oder www.bmw.de heißt, sind Internetadressen oft schwer zu merken Deshalb ist es sinnvoll, die Adressen
2A Basistechniken: Weitere Aufgaben
2A Basistechniken: Weitere Aufgaben 2A.3 Programmierung unter UNIX/Linux 1. Gegeben sind einige Ausschnitte von C-Programmen, die unter UNIX/Linux ausgeführt werden sollen. Beantworten Sie die zugehörigen
Artikel Schnittstelle über CSV
Artikel Schnittstelle über CSV Sie können Artikeldaten aus Ihrem EDV System in das NCFOX importieren, dies geschieht durch eine CSV Schnittstelle. Dies hat mehrere Vorteile: Zeitersparnis, die Karteikarte
Übung 1. Explorer. Paint. Paint. Explorer
Seite 1 Übung 1 1. Öffnen Sie das Programm PAINT 2. Maximieren Sie das Fenster 3. Verkleinern Sie das Fenster (Nicht Minimieren!!) 4. Öffnen Sie ZUSÄTZLICH zu PAINT den Windows Explorer 5. Verkleinern
SRM - Supplier Self Service (Lieferant) Author: Dennis Vater; Version: 01, January 1th, 2013
Inhalt 0. Systemlandschaft 2 1. Benachrichtigung über neue oder geänderte Belege 2 2. Anmeldung am Lieferantenportal 2 2.1 Erläuterungen der Bereiche 3 2.2 Erläuterungen des Status 4 3. Bestätigung pflegen
Session 1: Classes and Applets
Session 1: Classes and Applets Literature Sprechen Sie Java, ISBN 3-89864-117-1, dpunkt deutsch Java für Studenten, ISBN 3-8273-7045-0, PearsonStudium deutsch Java in a Nutshell, ISBN: 0-59600-283-1, O'Reilly
Tevalo Handbuch v 1.1 vom 10.11.2011
Tevalo Handbuch v 1.1 vom 10.11.2011 Inhalt Registrierung... 3 Kennwort vergessen... 3 Startseite nach dem Login... 4 Umfrage erstellen... 4 Fragebogen Vorschau... 7 Umfrage fertigstellen... 7 Öffentliche
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
Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6
Gudrun Fischer Sascha Kriewel [email protected] Anmeldung zur Klausur! Übungsblatt Nr. 6 Um an der Klausur teilzunehmen, müssen sich Studierende der angewandten Informatik in
Erstellen von x-y-diagrammen in OpenOffice.calc
Erstellen von x-y-diagrammen in OpenOffice.calc In dieser kleinen Anleitung geht es nur darum, aus einer bestehenden Tabelle ein x-y-diagramm zu erzeugen. D.h. es müssen in der Tabelle mindestens zwei
Installationsanweisung Gruppenzertifikat
Stand: November 2015 Inhalt 1. Allgemeine Hinweise... 1 2. Vor der Installation... 1 3. Installation des Gruppenzertifikats für Internet Explorer... 2 3.1. Überprüfung im Browser... 7 3.2. Zertifikatsbestätigung
Suchbäume. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Suchbäume 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
5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:
5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen 5. Abstrakte Klassen Beispiel Beispiel (3) Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Probleme des Implementierungsvorschlags:
Multimedia Engineering II - Übung 2
Multimedia Engineering II - Übung 2 Zielstellung der Übungsaufgabe Das Login-Panel der ersten Übung erhält nun die Funktion, auf eine zweite View zu wechseln. Auf dieser werden Sie nun das erste Mal einen
