5 Hausaufgabe Java Applets

Größe: px
Ab Seite anzeigen:

Download "5 Hausaufgabe Java Applets"

Transkript

1 5 Hausaufgabe Java Applets Allgemeines zu allen Aufgabenblöcken: Lesen Sie den jeweils einleitenden Aufgabentext und die Aufgabenstellung genau. Damit Sie erläuternden Text von den Aufgabenstellungen schnell unterscheiden können, sind die Aufgabentexte optisch durch einen Randbalken hervorgehoben. Pflichtaufgaben sind mit dickem Randbalken, freiwillig zu bearbeitende Aufgaben mit einem dünnen Seitenstrich markiert. Bearbeiten Sie die Aufgaben zügig. Sollten sich bei der Bearbeitung Schwierigkeiten ergeben, die Sie nicht selber lösen können, so befragen Sie Ihren Betreuer (Hiwi) und bitten Sie ihn um Hilfestellung oder ergänzende Erläuterungen! Sie sollten sich nicht stundenlang an einem Problem festbeißen! Lesen Sie in der angegebenen/empfohlenen Literatur und in unserem Einführungstext nach eigenem Ermessen zu den im folgenden angegebenen Inhalten des Aufgabenblocks. 1

2 TA 5.1 Legen Sie zur Bearbeitung und Strukturierung Ihrer Lösungen unter Ihrem Verzeichnis AB5 drei weitere Verzeichnisse TA1, TA2 und TA3 an und sortieren Sie Ihre Quellen und Ergebnisse entsprechend ein. 5.1 Java-Applets In allen bisherigen Aufgaben wurden mit Hilfe von Java klassische Programme entwickelt, welche immer volle Zugriffsrechte auf alle lokalen Ressourcen (Dateien, Geräte,...) des Benutzers besitzen, der sie ausführt. Außerdem erfolgt die Interaktion zwischen diesen Programmen und ihren Benutzern im einfachsten Fall über Ein- und Ausgaben von Texten. Zur Motivation schauen Sie sich bitte ein paar Beispiele auf jdk/1.4/index.html an, nur um zu sehen, was man mit Applets alles machen kann. Was Applets besonders macht Die im Java-Sprachgebrauch kurz als Applet bezeichneten kleinen Anwendungen entsprechen nicht diesem klassischen Muster; sprich, Applets haben immer eine grafische Benutzeroberfläche und haben in der Regel keinen Zugriff auf lokale Ressourcen. Außerdem werden Applets nicht wie klassische Java-Anwendungen mit einem Aufruf java Programm gestartet, sondern werden von Internetseiten aus in dem verwendeten Internet-Browser (MS Internet-Explorer, Mozilla, Firefox,...) gestartet. Warum Applets sicher sind Eine wichtige Einschränkung solcher Internetanwendungen ist, dass sie im Normalfall keinen Zugriff auf lokale Ressourcen des Benutzers haben sollten. Ein Benutzer, der eine Internetseite mit eingebautem Applet aufruft, sollte schließlich nicht unbewusst das Risiko eingehen müssen, dass ein von der Internetseite gestartetes Applet bösartige Dinge (wie Spionage oder Datenzerstörung) mit seinen privaten Daten betreibt. Die dazu notwendigen, einschränkenden Sicherheitsrichtlinien werden umgesetzt, indem Applets in einer speziellen Umgebung ausgeführt werden, in der Ihnen keine Möglichkeit gegeben wird, auf kritische Ressourcen zuzugreifen 1. 1 Eine möglicherweise interessante Ausnahme von dieser Regel wird auf der Internetseite signed.html beschrieben. Für dieses Aufgabenblatt brauchen Sie diese Ausnahme aller- 2

3 Wo Applets ausgeführt werden Die Sicherheitsrichtlinien erlauben es erst, Applets direkt aus dem Internet zu starten, ohne das Risiko des Benutzers signifikant zu erhöhen. Java- Applets können so in Internetseiten integriert werden, dass beim Betrachter die Illusion entsteht, das Applet würde im Internet ablaufen. Das ist allerdings nicht der Fall, sondern das Applet wird in einer Java-Erweiterung des verwendeten Internet-Browsers ausgeführt. Gibt man in die Adresszeile des Browsers eine Adresse einer Internetseite ein, welche ein Applet enthält, so wird der Bytecode dieses Applet auf den lokalen Computer geladen und dann in der entsprechenden Erweiterung des Browsers ausgeführt. 5.2 Programmierung von Java-Applets In diesem Abschnitt werden nun die technischen Details beschrieben, die Ihnen bei der Implementierung eines Java-Applets begegnen. Rein technisch sind Java Applets nichts weiter als Klassen, die eine durch Java vorgegebene Klasse mit dem Namen Applet erweitern. Das erweitern einer Klasse haben Sie schon bereits auf Aufgabenblatt 3 kennengelernt 2 und hat hier exakt die gleiche Bedeutung wie bei Turtle-Klassen Ein minimales Applet Ein minimales Applet MinimalApplet wird in Listing 1 definiert und ist tatsächlich bereits ein lauffähiges Applet, nur dass es eben nichts tut. Wird dieses Applet auf einer Internetseiten eingebaut, so bleibt der für das Applet reservierte Bereich einfach weiß oder grau. 1 import java. applet.*; 2 public class MinimalApplet extends Applet {} Listing 1: Minimales Java-Applet dings nicht. 2 Zur Erinnerung: Man definiert eine Klasse Erweitert als Erweiterung einer anderen Klasse Basis, indem man in der Deklarationszeile der Klasse Erweitert die Basisklasse hinter dem Schlüsselwort extends nennt. Im Beispiel also: class Erweitert extends Basis{} Die erweiterte Klasse Erweitert übernimmt automatisch alle Funktionen und Attribute der Basisklasse Basis. 3

4 5.2.2 Veränderung des vorgegebenen Applets Die folgenden Methoden werden von der Klasse Applet zur Verfügung gestellt und sind auch für diese Aufgabe relevant 3 : Rückgabewert Methodenname Beschreibung void init() Wird vom Browser aufgerufen, wenn das Applet geladen ist. void start() Wird vom Browser aufgerufen, wenn das Applet ablaufen kann. void stop() Wird vom Browser aufgerufen, wenn das Applet seine Ausführung unterbrechen soll. void destroy() Wird vom Browser aufgerufen, wenn das Applet nicht mehr benötigt wird. Um den Zusammenhang zwischen den Methoden aus der Tabelle zu verstehen, soll Abbildung 1 helfen. Im Code aus Listing 1 werden die benannten Methoden nicht neu definiert, und die Vorgaben aus der Klasse Applet, welche erweitert wird, werden daher nicht überschrieben. Falls Sie an dem in der Basisklasse Applet vorgegebenen Verhalten etwas ändern wollen, so müssen Sie die Methode einfach überschreiben, indem Sie die entsprechende Methode in ihrem Applet erneut definieren. 1 import java. applet.*; 2 public class CustomApplet extends Applet { 3 public void init () 4 { } 7 } Listing 2: Minimales Java-Applet Die in Listing 2 gegebene Deklaration zeigt ein Beispiel für die Überladung der Methode init, ab Zeile 5 müsste dann der eigene Code zur Initialisierung plaziert werden. inactive init() active start() running destroy() stop() Abbildung 1: Zustandsautomat der Klasse Applet 3 Weitere Informationen zur Klasse Applet aus dem Paket java.applet finden Sie unter 4

5 5.3 Internetseiten und Applets Internetseiten werden in einer speziellen formalen Sprache (HyperText Markup Language kurz HTML) geschrieben, welche es vor Allem erlaubt, Texte zu strukturieren und mit Bildern zu versehen. HTML hat für das Internet fundamentale Bedeutung und wird ihnen immer wieder begegnen, wenn Sie mit dem Internet arbeiten. Diese Sprache für Internetseiten soll hier nicht das Hauptthema sein, allerdings können Applets, wie oben beschrieben, nur von Internetseiten aus gestartet werden. Damit für diese Aufgabe nicht erst die Sprache HTML verstanden werden muss, fassen wir hier die Grundlagen in aller Kürze zusammen. Wir werden Ihnen dabei zeigen, wie Sie eine kleine Internetseite mit ihrem eigenen Applet selbst aufsetzen können HTML in aller Kürze Man kann HTML als eine Sprache verstehen, mit der man auf systematische Weise Texte markieren kann. Eine Marke hat in HTML einen Namen, wie z.b. big, welcher den entsprechend markierten Text größer schreibt. Eine Markierung macht man dabei, indem man Marker (sogenannte Tags) in den Text einbaut, der markiert, wo ein entsprechender Bereich beginnt, und natürlich auch wo er endet. Dazu gibt es für jede Art Tag (wie z.b. das bereits erwähnte big-tag) jeweils ein startendes Tag (am Beispiel: <big> ) und ein beendendes Tag (am Beipiel: </big>) am Ende eines größer zu schreibenden Bereichs. Start und End-Tags unterscheiden sich durch den / vor dem Namen des Tags. 1 <html > 2 <head > 3 < title > Beschreibung der Seite </ title > 4 </ head > 5 <body > 6 </ body > 7 </ html > Listing 3: Minimale HTML Datei Wie in Listing 3 zu sehen ist, besteht ein HTML-Bereich (<html> bis</html>) aus einem Kopf-Bereich (<head> bis</head>), der in der Regel Informationen über den Text enthält 4 und einem Körper-Bereich <body> bis </body>), der die eigentlichen Informationen der Seite trägt 5. HTML-Tag und Attribute Tags, wie sie im letzten Abschnitt beschrieben werden, können auch erweiterte Eigenschaften (Attribute) besitzen. In 4 Diese werden z.b. von Internetsuchmaschinen wie GOOGLE benutzt. 5 Mehr über die Sprache HTML erfahren Sie auf für diese Aufgaben brauchen Sie diese Informationen allerdings nicht. 5

6 diesem Fall hat ein Tag eine Form wie das table-tag in Listing 4. In dem Ausdruck <table border="1"> ist border der Namen eines Attributs des table-tags und 1 ist der Wert des Attributes. Die Bedeutung der im Bereich der Tabelle in Listing 4 definierten Unterbereiche, tr (steht für table row) und th (steht für table head), kann man in Abbildung 2 sehen. Abbildung 2: Das Bild zeigt einen Webbrowsers, der die in Listing 4 deklarierte Tabelle darstellt. 1 <table border ="1"> 2 <tr > 3 <th >Titel 1</th > 4 <th >Titel 2</th > 5 </tr > 6 <tr > 7 <td > Inhalt 1</td > 8 <td > Inhalt 2</td > 9 </tr > 10 </ table > Listing 4: HTML Beschreibung der Tabelle aus Abbildung 2. Das HTML-Tag <APPLET> Nun soll in aller Kürze gezeigt werden, wie Sie eine Internetseite mit einem integrierten Applet erstellen können. 1 <APPLET CODE =" applet. class " WIDTH ="20" HEIGHT ="20"> 2 </ APPLET > Listing 5: Das APPLET-Tag APPLET-Tags können im body-bereich einer HTML-Datei eingesetzt werden, um ein entsprechendes Applet an entsprechender Stelle in die Seite einzubauen. Dabei müssen zwingend die Klassendatei im Attribut CODE, die Breite 6

7 des Applet im Attribut WIDTH und die Höhe des Applet im Attribut HEIGHT angegeben werden 6. Die Größenangabe muss dabei in Bildpunkten (sogenannten Picture Elements kurz Pixels) erfolgen. Die Applet-Klassendatei, deren Name im Attribut CODE angegeben wird, muss dabei im gleichen Verzeichnis wie die HTML-Datei liegen. 5.4 Zusammenfassung Um ein Applet auf einer Internetseite zu integrieren, brauchen Sie also mindestens eine wie in Listing 6 aufgeführte HTML-Datei. 1 <html > 2 <head > 3 <title >Das Applet </ title > 4 </ head > 5 <body > 6 < APPLET CODE =" applet. class " WIDTH ="20" HEIGHT ="20"> 7 </ APPLET > 8 </ body > 9 </ html > Listing 6: Das APPLET-Tag in einem HTML-Dokument. Aufgaben: Zunächst müssen Sie ein paar Befehle auf der Kommandozeile eintippen, damit ihre private Webseite im Gauß-IT Zentrum aktiviert wird: Geben Sie nacheinander die folgenden Kommandos auf der Kommandozeile ein: 1. mkdir ~/public_html 2. fs setacl ~/public_html system:anyuser rl Das erste Kommando legt ein Verzeichnis public html in ihrem Benutzerverzeichnis an. Das zweite Kommando verändert die Zugriffsrechte auf dieses neue Verzeichnis, so dass andere Benutzer in diesem Verzeichnis lesen können. Die Zeichenkette rl im zweiten Kommando sagt übrigens Lesen (read) und Auflisten (list), kurz rl. Das war es im Prinzip schon, und Sie haben Ihre Internetseite aktiviert. Ihre Internetseite können Sie jetzt mit einem Browser besuchen, indem Sie in der Adresse tu-bs.de:8080/~y#####, die Zeichenkette ###### durch Ihre Y-Nummer ersetzen. 1. Legen Sie ein minimales Applet MinimalApplet an, wie es in Listing 1 demonstriert wurde. 6 Weitere Attribute zum APPLET-Tag werden unter multimedia/java_applets.htm besprochen. 7

8 2. Schreiben sie eine HTML-Datei, welche das Applet aus Aufgabe 1 benutzt. Nennen Sie die Datei einfach Applet.html. So, nun haben Sie ihr erste eigene Internetseite mit integriertem Java-Applet fertig, nur macht dieses Applet im Moment noch nichts besonderes. Das soll sich ändern. 5.5 Ereignisbasierte Programmierung Wie bereits erwähnt ist die Benutzerschnittstellte von Java-Applets immer Grafik-orientiert. Das hat auch Auswirkungen auf die Art und Weise, wie man programmiert. Wo man in einem klassischen Programm einfach mit System.out.println() einen Text ausgibt und z.b. mit System.in.read() Eingaben von der Tastatur liest, so treten in der grafischen Programmierung Ereignisse in den Vordergrund, die z.b. von der Computer-Maus kommen Ereignisse Ein Ereignis in diesem Sinne ist eine Mausbewegung, ein Mausklick, ein Ziehen mit gedrückter Maustaste und vieles mehr. Damit ein Applet diese Ereignisse (engl. events) empfangen kann, muss der Programmierer zunächst garantieren, dass das Applet mit bestimmten Events auch etwas anfangen kann. Soll das Applet z.b. innerhalb seines Bereichs auf dem Bilschirm auf Mausbewegungen reagieren, so muss das Applet ganz bestimmte Methoden implementieren. Schauen Sie sich das Beispiel in Listing 7 genau an. 1 import java. applet.*; 2 import java. awt.*; 3 import java. awt. event.*; 4 5 public class BlinkApplet 6 extends Applet 7 implements MouseMotionListener 8 { 9 public void init (){ 10 addmousemotionlistener ( this ); 11 setbackground ( Color. yellow ); 12 } 13 public void mousemoved ( MouseEvent e ) { 14 setbackground ( new Color (( int )( Math. random ()*255), 15 ( int )( Math. random ()*255), 16 ( int )( Math. random ()*255) 17 ) 18 ); 19 repaint (); 20 } 8

9 21 public void mousedragged ( MouseEvent e ) { } 22 } Listing 7: Einfaches Applet, das auf Mausbewegungen reagiert. Die ersten drei Zeilen des Listings 7 importieren zunächst wieder die notwendigen Klassen, aus den entsprechenden Bibliotheken. In Zeile 7 geschieht nun etwas neues: sie deklariert das Applet zu einem MouseMotionListener. Diese Deklaration teilt Java mit, dass das Applet auch Methoden zur Interpretation von Ereignisse hat, die durch Mausbewegungen ausgelöst werden. In Folge dieser Deklaration müssen natürlich auch die Methoden implementiert werden, die der MouseMotionListener voraussetzt, das wären in diesem Fall mousemoved und mousedragged 7 In Zeile 10 wird durch den Aufruf von addmousemotionlistener( this );das aktive Applet als MouseMotionListener registriert. Damit ist das Applet auf Empfang geschaltet. Treten im Folgenden Ereignisse auf, für die sich das Applet registriert hat, so wird das Applet durch den Aufruf seiner entsprechenden Methode informiert. Dabei wir dem Applet in diesem Fall ein MouseEvent übergeben 8. Ein MouseEvent hat wiederum Methoden, über die man genaueres über das Event erfahren kann, wie z.b.getx()zum Auslesen der x-koordinate des Events undgety()zum Auslesen der y-koordinate des Events. Das Applet aus Listing 7 ändert zufällig seine Farbe, wenn man mit dem Mauszeiger über seinen Bildschirmbereich fährt. MouseMotionListener ist dabei eine sogenannte Schnitt- Schnittstellen stelle (Interface). 1 public interface MouseMotionListener 2 { 3 public void mousemoved ( MouseEvent e ); 4 public void mousedragged ( MouseEvent e ); 5 } Listing 8: Definition von MouseMotionListener. Listing 8 zeigt eine verkürzte Definition der Schnittstelle MouseMotionListener. Wir müssen sowas in diesem Kurs nicht selbst definieren, sondern sagen durch implements MouseMotionListener, wie in Zeile 7 in Listing 7 nur, dass wir die Methoden der Schnittstelle implementieren. Bei solchen Schnittstellen ist zu beachten, dass der Compiler auch überprüft, ob alle Methoden der Schnitstelle auch wirklich durch die definierte Klasse implementiert werden. Daher implementiert Listing 7 auch die eigentlich leere Methode 7 Das wird unter nochmal etwas genauer erklärt. 8 Siehe html. 9

10 mousedragged Applets selbst entwickeln Die Methodepaint Jedes Applet stellt eine Methode mit der folgenden Deklarationszeile zur Verfügung: 1 public void paint ( Graphics g); Listing 9: Deklarationszeile der Methode paint Wie man sieht, bekommt die Methode auch ein Objekt der Klasse Graphics übergeben. Dieses Objekt können Sie wie eine Leinwand verstehen, auf der Sie unter Anderem mit den folgenden Methoden malen können 10 : Methodenname Beschreibung drawline(int x1, int y1, int x2, int y2) Malt eine Linie. drawoval(int x, int y, int width, int height) Malt ein Oval. filloval(int x, int y, int width, int height) Malt ein ausgemates Oval. drawstring(string str, int x, int y) Schreibt einen Text. Listing 10 demonstriert den Umgang mit der Methode paint. 1 import java. applet.*; 2 import java. awt.*; 3 public class PaintDemo 4 extends Applet 5 { 6 public void init () 7 { 8 setbackground ( Color. yellow ); 9 } 10 public void paint ( Graphics g) 11 { 12 int appletwidth = getwidth (); 13 int appletheight = getheight (); 14 g. drawstring (" Das ist keine Kunst!", 20, 20); 15 for ( int i =0;i <100; i ++) 16 { 17 Color c= new Color (( int )( Math. random ()*255), 18 ( int )( Math. random ()*255), 19 ( int )( Math. random ()*255)); 20 g. setcolor (c); 21 g. drawline (( int )( Math. random ()* appletheight ), 9 Eine Liste weiterer Listener findet sich unter docs/api/java/util/eventlistener.html. 10 Unter finden sich weitere. 10

11 22 ( int )( Math. random ()* appletwidth ), 23 ( int )( Math. random ()* appletheight ), 24 ( int )( Math. random ()* appletwidth )); 25 } 26 } 27 } Listing 10: Eine einfache paint-methode Der appletviewer Sie wissen bereits, dass Applets dazu gedacht sind, in Internetseiten integriert zu werden. Testet man die Funktionsweise eines Applet aber mit der Hilfe eines Webbrowsers, so muss man diesen nach jedem Test neu starten, da der Browser die einmal gestarteten Applet bis zu seiner Beendigung im Speicher behält. Das Testen von Applet in einem Browser ist daher sehr unkomfortabel. Java bietet aus diesem Grund einen eigenen kleinen Applet-Betrachter mit dem Namen appletviewer. Dieser appletviewer wird wie folgt gestartet: appletviewer seite.html Als Parameter muss man also die HTML-Datei übergeben, in der das zu testende Applet integriert ist. 11

12 Aufgaben: 1. Schreiben Sie das Beispiel aus Listing 10 ab. 2. Schreiben Sie eine passende HTML-Datei und starten Sie das Applet im appletviewer. 3. Verändern Sie die Größe des appletviewer. Sie werden sehen, dass die zufälligen Striche immer wieder neu, an immer wieder neuen Punkten gemalt werden. Erklären Sie dieses Phänomen. 4. Verändern Sie das Applet so, dass es Kreise der immer gleichen Größe 50 an zufälligen Positionen malt (Kreise sind spezielle Ovale!). TA 5.2 In Listing 10 wurden mit der Methode g.drawline(random,random,random,random)100 Linien zufällig auf der Leinwand verteilt. In der letzten Aufgabe haben Sie das Applet dann verändert, so dass es gleichgroße Kreise an zufällige Positionen zeichnet. Nun soll dieses Applet nochmal modifiziert werden. Die Stellen, an denen Kreise gezeichnet werden sollen, werden nun über die Maus vom Benutzer vorgegeben. Das Applet muss dazu für entsprechende Ereignisse (wie in Abschnitt beschrieben) auf Empfang geschaltet werden. Dann soll mit jedem eintreffenden Klick ein neuer Kreis an die vom Ereignis gegebene Position gezeichnet werden. Damit das Applet Klick-Ereignisse empfangen kann, muss, anders als im Beispiel in Listing 7, die MouseListener-Schnittstelle anstelle der dort implementierten MouseMotionListener-Schnittstelle umgesetzt werden. Die Implementierung der MouseListener-Schnittstelle erfordert die Umsetzung folgender Methoden: 1 public interface MouseListener 2 { 3 public void mouseexited ( MouseEvent e ); 4 public void mouseclicked ( MouseEvent e ); 5 public void mouseentered ( MouseEvent e ); 6 public void mousereleased ( MouseEvent e ); 7 } Listing 11: Definition von MouseListener. 12

13 Aufgaben: 1. Schreiben Sie das Beispiel aus Listing 10 so um, dass es die Schnittstelle MouseListener implementiert. Will man nun das Programm umschreiben, so dass es bei Eintritt eines Ereignisses an die Stelle des Ereignisses einen Kreis malt, so stößt man an folgendes Problem: In den Methoden mouseclicked, mouseexited, mouseentered, mousereleased kann man nicht Zeichnen, da es kein Graphics-Objekt gibt, und in der Methode paint kommen die Signale nicht an. Wie kann man das lösen? Nun, wir spreichern das Event einfach in einer Variable ab, die auch in der paint-methode sichtbar ist. So kann die Ereignisverarbeitung und deren Darstellung einfach getrennt werden. 1. Schreiben Sie das Applet um, sodass es an Stellen, an denen der Benutzer klickt, einen Kreis zeichnet. 5.7 Die Leinwand ist vergesslich Wie Sie beim Ausprobieren des zuletzt erstellten Applets sicher bemerkt haben, vergisst die Leinwand beim Aufruf von Paint alles, was bereits auf ihr gezeichnet wurde. Um ein richtiges Bild malen zu können, müsste man sich daher nicht nur das letzte Ereignis, sondern auch alle vorherigen merken. Das kann man sehr gut mit einer Liste umsetzen 11. In diesem Kurs gehen wir aber einen anderen Weg, wobei wir die Methode update kennen lernen Die Methode update Die im java.applet.applet vorgegebene Methode update sieht aus wie in Listing public void update ( Graphics g) 2 { 3 g. setcolor ( getbackground ); 4 g. fillrect (0,0, width, height ); 5 g. setcolor ( getforeground ()); 6 paint (g); 7 } Listing 12: Definition der Methode update

14 Listing 12 zeigt, warum alle alten Punkte immer wieder von der Leinwand verschwinden. Wenn wir also die Methode update mit einer von uns geschriebenen Version überladen, dann können wir das Verhalten an unsere Anforderungen anpassen. Aufgaben: 1. Schreiben Sie das Applet so um, dass update nicht den Inhalt der Leinwand löscht. 2. Malen Sie etwas und fahren Sie dann mit einem anderen Fenster über ihre Leinwand, nun Verschwinden die Kreise wieder! Warum? 14

6 Eigenständiges Programmieren

6 Eigenständiges Programmieren 6 Eigenständiges Programmieren Allgemeines zu allen Aufgabenblöcken: Lesen Sie den jeweils einleitenden Aufgabentext und die Aufgabenstellung genau Damit Sie erläuternden Text von den Aufgabenstellungen

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 18 Einstieg in die Informatik mit Java Applets Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 18 1 Einführung 2 Sicherheits-Maßnahmen 3 Ereignisgesteuerte Programmierung

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

Ereignisverwaltung und Layout-Typen

Ereignisverwaltung und Layout-Typen Ereignisverwaltung und Layout-Typen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 13.06.07 G. Bohlender (IANM UNI Karlsruhe) Ereignisverwaltung

Mehr

Objektorientierte Programmierung OOP Objektorientierte Programmierung (OOP) mit Java

Objektorientierte Programmierung OOP Objektorientierte Programmierung (OOP) mit Java 9 Übungen: Applets Objektorientierte Programmierung OOP Objektorientierte Programmierung (OOP) mit Java 1. Java-Applet mit Text 2. Java-Applet mit Bild und Text 3. Java-Applet mit Grafik 9 Applets 4. Java-Applet

Mehr

Praktikum 4: Grafiken und Ereignisse

Praktikum 4: Grafiken und Ereignisse Praktikum 4: Grafiken und Ereignisse Aufgabe 1: Java Applikation Bisher haben wir in Java (ebenso wie in C) jeweils selbständige Konsole-Applikationen erstellt. Java wurde als Programmiersprache für das

Mehr

V by WBR1/BFH-TI 2011 by MOU2/BFH-TI

V by WBR1/BFH-TI 2011 by MOU2/BFH-TI Java-Applets Unterlagen zum Modul OOP mit Java V 3.0 2007 by WBR1/BFH-TI 2011 by MOU2/BFH-TI Java-Applets V3.0 2011 by WBR1&MOU2/BFH- TI Lernziele Die Kursteilnehmer sind in der Lage: Möglichkeiten und

Mehr

Universität Potsdam Institut für Informatik Sommersemester Programmierung. Lehrblatt Woche 11

Universität Potsdam Institut für Informatik Sommersemester Programmierung. Lehrblatt Woche 11 Universität Potsdam Institut für Informatik Sommersemester 2014 Programmierung Lehrblatt Woche 11 1 Applets In den letzten Wochen haben Sie die graphische Programmierung kennengelernt. Um Java-Programme

Mehr

Programmieren in Java -Eingangstest-

Programmieren in Java -Eingangstest- Programmieren in Java -Eingangstest- Nummer: 1. Studiengang: Informatik B.Sc. Informatik M.Sc. ESE B.Sc. ESE M.Sc. Sonstiges: Fachsemester: Bitte Fragen, die Sie nicht beantworten können unbedingt mit

Mehr

import java.applet.applet; import java.awt.*; public class Grow extends Applet { public void start() { setbackground(color.orange); } public void

import java.applet.applet; import java.awt.*; public class Grow extends Applet { public void start() { setbackground(color.orange); } public void 22.3 Animation Animation ist eine Bewegung vortäuschende Abfolge von Bildern(evt. mit Ton unterlegt:-) Für das menschliche Auge genügen 24 Bilder pro Sekunde. In der Zeit dazwischen legen wir das Applet

Mehr

Applications Applets (eingeschränkte Rechte)

Applications Applets (eingeschränkte Rechte) 1 Arten von Java-Programmen Man unterscheidet 2 verschiedene Arten von Java-Programmen: Applications Applets (eingeschränkte Rechte) Erstere sind eigenständige Programme. Letztere sind "kleine" Programme,

Mehr

8.6 Visualisierung der Sortieralgorithmen

8.6 Visualisierung der Sortieralgorithmen 8.6 Visualisierung der Sortieralgorithmen 8.6.1 Problemstellung Schauen Sie sich den folgenden Quelltext eines Java-Applets an: import java.awt.*; import javax.swing.*; import java.awt.event.*; public

Mehr

Projekt objektorientiertes programmieren in Java SS08. Event-Handling. Nils Heinrich

Projekt objektorientiertes programmieren in Java SS08. Event-Handling. Nils Heinrich Projekt objektorientiertes programmieren in Java SS08 Event-Handling Nils Heinrich 18.05.2008 Event-Handling Delegation Event Model / Delegation Based Event-Handling Ereignistypen Ereignisklassen Event

Mehr

Betreutes Programmieren Vorlesung Informatik II, Blatt 11

Betreutes Programmieren Vorlesung Informatik II, Blatt 11 SS 2011 Fakultät für Angewandte Informatik Lehrprofessur für Informatik 13.07.2011 Prof. Dr. Robert Lorenz Betreutes Programmieren Vorlesung Informatik II, Blatt 11 Programmieraufwand für geübte Programmierer:

Mehr

<a href="basic.java">the source.</a>

<a href=basic.java>the source.</a> Start-Tags von Elementen können Attribute enthalten, die Zusatz-Informationen für die Darstellung des Elements enthalten. Der Wert eines Attributs kann(u.a.) ein String sein. Das Attribut href des Elements

Mehr

Javakurs für Anfänger

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:

Mehr

1 Grundlagen der Objektorientierung

1 Grundlagen der Objektorientierung Kapitel 1 Grundlagen der Objektorientierung Seite 1/8 1 Grundlagen der Objektorientierung Dieses Kapitel stellt eine solide, pragmatische Einführung in die fundamentalen Konzepte der Objektorientierung

Mehr

1. Erzeugen eines neuen leeren Applets

1. Erzeugen eines neuen leeren Applets Eckart Modrow Java-Applets mit J++ S. 1 1. Erzeugen eines neuen leeren Applets Applets sind Java-Programme, die in einem Browser ablaufen. Zu diesem Zweck gehört zum Applet immer eine HTML-Seite, die das

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

Tag 9: Grafische Benutzeroberflächen

Tag 9: Grafische Benutzeroberflächen Kapitel 10 Tag 9: Grafische Benutzeroberflächen In Java gibt es zunächst zwei verschiedene Möglichkeiten Klassen für die Grafikausgabe zu verwenden. Eine Möglichkeit ist AWT (=Abstrakt Windows Toolkit)

Mehr

Rückgabewerte von Methoden

Rückgabewerte von Methoden OOP Rückgabewerte von Methoden Henrik Horstmann 14. September 2014 Inhaltsverzeichnis Inhaltsverzeichnis 1 Bedeutung der Symbole...1 2 Rückgabewerte von Methoden...2 3 Der freundliche Computer...2 3.1

Mehr

Was passiert, wenn Button "Ok?" mit Maus angeklickt?

Was passiert, wenn Button Ok? mit Maus angeklickt? Ein Beispiel-Frame Was passiert, wenn Button "Ok?" mit Maus angeklickt? gar nichts!!! FH AACHEN UNIVERSITY OF APPLIED SCIENCES OOS Prof. Dr. H. Faßbender Ereignisverarbeitung 27. April 2016 1 Implementierung

Mehr

Ab jetzt: Java ohne Kara

Ab jetzt: Java ohne Kara Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen JavaKara -> Java Ablauf in JavaKara: 1. Programm schreiben 2. Kompilieren 3. Programm starten Ablauf in Java

Mehr

Objekte. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 5. 1 Modulübersicht 3

Objekte. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 5. 1 Modulübersicht 3 Programmieren mit Java Modul 5 Objekte Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Klassen und Objekte 3 2.1 Klassen.................................... 4 2.2 Objektvariablen und Methoden.......................

Mehr

Vererbung. Generalisierung und Spezialisierung Vererbung und Polymorphismus

Vererbung. Generalisierung und Spezialisierung Vererbung und Polymorphismus Vererbung Generalisierung und Spezialisierung Vererbung und Polymorphismus Wir wollen in unserem Aquarium verschiedene Arten von Fischen schwimmen lassen. In einem ersten Ansatz definieren wir nicht nur

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 34 Einstieg in die Informatik mit Java Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Definition von Klassen 2 Methoden 3 Methoden

Mehr

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

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

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

Ein erstes "Hello world!" Programm

Ein erstes Hello world! Programm OOP Henrik Horstmann 14. September 2014 Inhaltsverzeichnis Inhaltsverzeichnis 1 Bedeutung der Symbole...1 2 Die Benutzer Oberfläche von HOOPLU...2 2.1 Projekte öffnen und speichern...2 2.2 Die Klasse Program

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

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

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

16 Zeichnen in Swing-Komponenten , Prof. Dr. D. Ratz

16 Zeichnen in Swing-Komponenten , Prof. Dr. D. Ratz 16 Zeichnen in Swing-Komponenten 2009 2014, Prof. Dr. D. Ratz 16.1 Grafische Darstellung von Komponenten Der Repaint-Manager sorgt für die grafische Darstellung der Komponenten Aktivierung beim erstmaligen

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

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

Java - AWT Basispraktikum SystemArchitektur WS 2008/ Atanas Dimitrov

Java - AWT Basispraktikum SystemArchitektur WS 2008/ Atanas Dimitrov Java - AWT Basispraktikum SystemArchitektur WS 2008/2209 09.12.2008 Atanas Dimitrov 1 Was besprechen wir heute: AWT Klassen Die Klasse Graphics AWT Methoden Die Klasse ToolKit Ausgabe von Bilder Die Klasse

Mehr

Objektorientierte Programmierung Studiengang Medieninformatik

Objektorientierte Programmierung Studiengang Medieninformatik Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 2 22.03.2017 Was bisher geschah... Klassen und Objekte Attribute und Methoden Klasse Bruch

Mehr

Aufgabe 5.1 (Laboraufgabe, Nocheinmal ein wenig Graphik)

Aufgabe 5.1 (Laboraufgabe, Nocheinmal ein wenig Graphik) Übungen zu Objektorientierte Programmierung in Java PD Dr. Wolfgang Goerigk Sommersemester 2009 Musterlösungen Serie 5 Aufgabe 5.1 (Laboraufgabe, Nocheinmal ein wenig Graphik) Die Klasse java.awt.container

Mehr

Grundlagen der Informatik für Ingenieure I

Grundlagen der Informatik für Ingenieure I 2 Java: Java-Einführung 2 Java: Java-Einführung 2.1 Java-Entwicklungsgeschichte 2.2 Java Eigenschaften 2.3 Java-Entwicklungsumgebung 2.4 Application vs. Applet 2.5 Ein erstes Programm 2.1 2.1 Java - Entwicklungsgeschichte

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

Einführung in die Programmierung I. 11. Vererbung. Stefan Zimmer

Einführung in die Programmierung I. 11. Vererbung. Stefan Zimmer Einführung in die Programmierung I 11. Vererbung Stefan Zimmer 21.1.2008 Programmcode wiederverwenden Wenn wir einige Klassen geschrieben haben, werden wir dabei Teile davon öfters hingeschrieben haben

Mehr

Programmierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 8. Blatt Für den 16. und

Programmierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 8. Blatt Für den 16. und Programmierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 8. Blatt Für den 16. und 17.6.2008 Organisatorisches Um auf die Mailingliste aufgenommen zu werden schicke einfach eine

Mehr

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja Aue

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

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

Softwareentwicklung Applets und Graphik

Softwareentwicklung Applets und Graphik Mag. iur. Dr. techn. Michael Sonntag Softwareentwicklung Applets und Graphik E-Mail: sonntag@fim.uni-linz.ac.at http://www.fim.uni-linz.ac.at/staff/sonntag.htm Institut für Informationsverarbeitung und

Mehr

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

Einführung in die Programmierung für NF. Grafische Benutzeroberflächen Einführung in die Programmierung für NF Grafische Benutzeroberflächen Ziele Grafische Benutzeroberflächen (Graphical User Interfaces) als Anwendungsbeispiel für die objektorienferte Programmierung kennenlernen.

Mehr

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

Universität Paderborn Prof. Dr. Stefan Böttcher. Abschluss von Kapitel 2: Programmierung Grafischer Oberflächen mit der Swing-Bibliothek Abschluss von Kapitel 2: Programmierung Grafischer Oberflächen mit der Swing-Bibliothek 1 Ereignis-orientierte Programmierung Prinzipien Programm besteht aus einer Reihe von Dämonen (=Listener) Dämon (=Listener)

Mehr

Schlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe:

Schlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe: Musterlösung Übung 7 Aufgabe 1 Sehen wir uns zu allererst das gegebene Forth Programm an: 0 3 new - list constant list1 list1 5 new - list constant list2 list1 6 new - list constant list3 list2 2 new -

Mehr

Kapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz

Kapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz Kapitel 13 Abstrakte Methoden und Interfaces 13. Abstrakte Klassen und Interfaces 1. Abstrakte Klassen 2. Interfaces und Mehrfachvererbung Folie 12.2 Abstrakte Methoden und Klassen Manchmal macht es überhaupt

Mehr

Prof. Dr. Wolfgang Schramm. Vorlesung. Techniken der Programmentwicklung. Exkurs: Anonyme Klassen

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

Mehr

Applets Belebung von Webseiten. Dipl.-Ing. Wolfgang Beer

Applets Belebung von Webseiten. Dipl.-Ing. Wolfgang Beer Applets Belebung von Webseiten Dipl.-Ing. Wolfgang Beer Was sind Applets? Java Klassen, die spezielle Richtlinien befolgen, um: "in Internet-Browsern lauffähig zu sein" Somit ist, komplexere Funktionalität,

Mehr

Wiederholung. Klassenhierarchie:

Wiederholung. Klassenhierarchie: Wiederholung Klassenhierarchie: class Unter extends Ober {... Die Unterklasse Unter erweitert die Funktionalität ihrer Oberklasse Ober. Objekte der Klasse Unter können anstelle von Objekten der Klasse

Mehr

C++ - Objektorientierte Programmierung Polymorphie

C++ - Objektorientierte Programmierung Polymorphie C++ - Objektorientierte Programmierung Polymorphie hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen C++ - Objektorientierte Programmierung 21.06.16 Seite 1 Polymorphie

Mehr

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

Einführung in die Programmierung für NF MI. Übung 07 Einführung in die Programmierung für NF MI Übung 07 Inhalt Wiederholung Kommentare Wiederholung Arrays Einführung in Objekte Einführung in die Programmierung für NF Übung 07 2 Wiederholung Kommentare Kommentare

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

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

Programmierung für Mathematik HS10

Programmierung für Mathematik HS10 Department of Informatics software evolution & architecture lab Programmierung für Mathematik HS10 Übung 5 1 Aufgabe: Eclipse IDE 11 Lernziele 1 Die Entwicklungsumgebung Eclipse kennen lernen 12 Aufgabenstellung

Mehr

Methoden und Wrapperklassen

Methoden und Wrapperklassen Methoden und Wrapperklassen CoMa-Übung IV TU Berlin 06.11.2012 CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 06.11.2012 1 / 24 Themen der Übung 1 Methoden 2 Wrapper-Klassen CoMa-Übung IV (TU Berlin)

Mehr

IT I: Heute. Nachbetrachtung Wissensüberprüfungen. Einführung Vererbung. Roboter in becker.robots. falls Zeit: Scheduling 8.11.

IT I: Heute. Nachbetrachtung Wissensüberprüfungen. Einführung Vererbung. Roboter in becker.robots. falls Zeit: Scheduling 8.11. IT I: Heute Nachbetrachtung Wissensüberprüfungen Einführung Vererbung Roboter in becker.robots falls Zeit: Scheduling 8.11.2016 IT I - VO 5 1 Organisatorisches VO nächste Woche im Peter-Tunner-HS! Tutorium

Mehr

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

Benutzeroberflächen. Abstract Windowing Toolkit, Rahmen, Wächter, Ereignisbehandlung, Ausgabe, Menüs. Benutzeroberflächen Abstract Windowing Toolkit, Rahmen, Wächter, Ereignisbehandlung, graphische Ausgabe, Menüs. Der Abstract Windowing Toolkit (awt) Jedes moderne Betriebssystem stellt bereit Fenster Menüs

Mehr

Begriffe 1 (Wiederholung)

Begriffe 1 (Wiederholung) Begriffe 1 (Wiederholung) Klasse Eine Klasse ist der Bauplan für ein oder mehrere Objekte. In einer Klasse werden Dienste (Methoden) zur Verfügung gestellt. Klassennamen beginnen mit einem Großbuchstaben.

Mehr

Implementieren von Klassen

Implementieren von Klassen Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und

Mehr

Java Game Development Fabian Birzele Programmierpraktikum 2008 / 2009

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

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

Arbeitsblatt 6: Programmierung geometrischer Figuren

Arbeitsblatt 6: Programmierung geometrischer Figuren Arbeitsblatt 6: Programmierung geometrischer Figuren Die Karten, auf denen die Lärmmessungen dargestellt werden, bestehen aus einer Vielzahl geometrischer Formen. Diese geometrischen Formen ergeben zusammen

Mehr

Funktionen in JavaScript

Funktionen in JavaScript Funktionen in JavaScript Eine Funktion enthält gebündelten Code, der sich in dieser Form wiederverwenden lässt. Mithilfe von Funktionen kann man denselben Code von mehreren Stellen des Programms aus aufrufen.

Mehr

Finden der Fehler bzw. Überprüfung der Korrektheit ist ungleich schwieriger als für sequentielle Programme:

Finden der Fehler bzw. Überprüfung der Korrektheit ist ungleich schwieriger als für sequentielle Programme: Warnung (Forts.): Finden der Fehler bzw. Überprüfung der Korrektheit ist ungleich schwieriger als für sequentielle Programme: Fehlerhaftes Verhalten tritt eventuell nur gelegentlich auf... bzw. nur für

Mehr

Abstrakte Klassen, Interfaces

Abstrakte Klassen, Interfaces Abstrakte Klassen, Interfaces INE2, Mittwoch 8.00-9.35 / TE561 M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was gehtes? Problemstellung Klassenhierachie - verschiedene geometrische

Mehr

Objektorientierte Programmierung Studiengang Medieninformatik

Objektorientierte Programmierung Studiengang Medieninformatik Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 3 29.03.2017 Was bisher geschah... Klassen und Objekte Attribute und Methoden Klassen ableiten

Mehr

Programmierung Nachklausurtutorium

Programmierung Nachklausurtutorium Programmierung Nachklausurtutorium Laryssa Horn, Tim Engelhardt 20 März 2018 Klassen Wofür wir Klassen brauchen: Definieren ein Bauplan eines Objektes Bauplan enthält Attribute und Methoden Klasse Beispiel

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

Objektorientierte Programmierung (OOP)

Objektorientierte Programmierung (OOP) orientierte Programmierung (OOP) 1. Motivation Die objektorientierte Sichtweise der Welt Als Motivation für die OOP sieht man sich am besten die reale Welt an: Die reale Welt besteht aus "en", z. B.: Gegenstände,

Mehr

C++ - Objektorientierte Programmierung Vererbung

C++ - Objektorientierte Programmierung Vererbung C++ - Objektorientierte Programmierung Vererbung Personen Kunden Mitarbeiter Verwaltung Verkäufer Leibniz Universität IT Services Anja Aue Vererbung Definition von Klassen auf Basis von bestehenden Klassen.

Mehr

Exkurs: ANONYME KLASSEN. Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm

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

Mehr

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke Institut für Programmierung und Reaktive Systeme Java 6 Markus Reschke 13.10.2014 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen

Mehr

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik

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

Mehr

Konzepte objektorientierter Programmierung

Konzepte objektorientierter Programmierung Konzepte objektorientierter Programmierung Objekte Klassen Nachrichten Kapselung Einführung Vererbung heute! Konzepte objektorientierter Programmierung Was ist ein Objekt? Was ist eine Klasse? Was sind

Mehr

/** Main-Methode erzeugt einen neuen Editor zum Testen */ public static void main(string[] args) { new Editor();

/** Main-Methode erzeugt einen neuen Editor zum Testen */ public static void main(string[] args) { new Editor(); Bereich: Grafische Benutzeroberflächen (UI), Events (2) Editor Package: de.dhbwka.java.exercise.ui.editor Klasse: Editor Aufgabenstellung: Schreiben Sie einen kleinen Texteditor mit Swing! Keine Panik,

Mehr

Grundlegende Programmierkonzepte: Anweisungen und Methoden

Grundlegende Programmierkonzepte: Anweisungen und Methoden Grundlegende Programmierkonzepte: Anweisungen und Methoden Einleitung: Eigene Befehle definieren Kara steht vor einem Baum, der alleine in der Welt steht. Hinter dem Baum hat es ein Kleeblatt, das Kara

Mehr

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

Einführung in die Programmierung für NF. Übung Einführung in die Programmierung für NF Übung 10 08.01.2014 Inhalt Programmierung Blatt 9 Eventbehandlung in Java Swing InputDialoge in Java UML Einführung in die Programmierung für NF Übung 10 2 Programmierung

Mehr

Grundlagen der Programmierung APPLETS

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

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

OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik

OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik WS 2011/12 Inhalt Test-Besprechung! Ziele verdeutlichen Große Bild von OOP Wiederholung: Einbettung als Technik

Mehr

C# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services

C# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services C# - Einführung in die Programmiersprache Methoden Leibniz Universität IT Services 02.07.12 Methoden... sind Subroutinen in einer Klasse. können einen Wert an den Aufrufer zurückgeben. verändern die Eigenschaften

Mehr

Beuth Hochschule Parameter-Übergabe-Mechanismen WS17/18, S. 1

Beuth Hochschule Parameter-Übergabe-Mechanismen WS17/18, S. 1 Beuth Hochschule Parameter-Übergabe-Mechanismen WS17/18, S. 1 Parameter-Übergabe-Mechanismen in Java und in anderen Sprachen. 1. Methoden vereinbaren mit Parametern Wenn man (z.b. in Java) eine Methode

Mehr

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass: OOP (Java), 22. Aufzählungstypen 1/20 Objektorientierte Programmierung Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester

Mehr

Im Mathe-Pool startet man Eclipse am besten aus einer Shell heraus, und zwar indem man im Home- Verzeichnis den Befehl

Im Mathe-Pool startet man Eclipse am besten aus einer Shell heraus, und zwar indem man im Home- Verzeichnis den Befehl Eclipse Eclipse ist eine IDE (Integrierte Entwicklungsumgebung), die speziell auf das Programmieren in Java zugeschnitten (und auch selbst in Java geschrieben) ist. Eine solche IDE vereint die Funktionalität

Mehr

10.4 Konstante Objekte

10.4 Konstante Objekte 10.4 Konstante Objekte Genau wie bei einfachen Datentypen (int,double,...) kann man auch Objekte als const deklarieren. Eine solche Deklaration bedeutet, daß alle Attribute so behandelt werden, als wären

Mehr

1 Modellierung einer Uhr

1 Modellierung einer Uhr PNS Wahlpflichtfach Informatik Projekt: Uhrzeit Seite 1 1 Modellierung einer Uhr Aufgabe: Es soll ein Modell für eine Digitaluhr erstellt werden, die Stunden und Minuten im Format hh:mm repräsentiert.

Mehr

Delegaten. d. h. eine Tätigkeitsanforderung wird weitergeleitet

Delegaten. d. h. eine Tätigkeitsanforderung wird weitergeleitet Einführung Delegaten delegate ist ein Objekt, das delegiert == weiterleitet d. h. eine Tätigkeitsanforderung wird weitergeleitet - Weiterleitung erfolgt an eine Funktion - diese Funktion(en) wurde dem

Mehr

Klassen als Objekte. Smalltalk vs. Objective-C. Self-Nachrichten an Klassen in Objective-C. Klassen als Objekte. Smalltalk: Everything is an object

Klassen als Objekte. Smalltalk vs. Objective-C. Self-Nachrichten an Klassen in Objective-C. Klassen als Objekte. Smalltalk: Everything is an object Smalltalk vs. Objective-C Klassen als Objekte Klassendeklarationen Selektoren als first-class values Objekt-Erzeugung Implementierung: Eigene VM vs. Einbettung in C Smalltalk: Everything is an object Klassen

Mehr

(Ausnahmebehandlung)

(Ausnahmebehandlung) 16. Exceptions (Ausnahmebehandlung) 16-1 Objektorientierte Programmierung (Winter 2010/2011) Kapitel 16: Exceptions (Ausnahmebehandlung) Motivation Throw und Catch 16. Exceptions (Ausnahmebehandlung) 16-2

Mehr

Einführung in die Informatik - Teil 3b -

Einführung in die Informatik - Teil 3b - Eckart Modrow Bewegte Grafik im JBuilder S. 1 Einführung in die Informatik - Teil 3b - Bewegte Grafik im JBuilder Inhalt: 1. Bälle 2. Aufgaben Literaturhinweise: Küchlin/Weber: Einführung in die Informatik,

Mehr

Unterprogramme. AnPr. Wiederholungen im Code werden vermieden. Programme werden leichter lesbar. Die Entwicklung und der Test werden vereinfacht.

Unterprogramme. AnPr. Wiederholungen im Code werden vermieden. Programme werden leichter lesbar. Die Entwicklung und der Test werden vereinfacht. Name Klasse Datum 1 Allgemeines Programme werden üblicherweise nicht als ein einziger, fortlaufender Programmcode verfasst, sondern mit geeigneten Mitteln unterteilt und somit strukturiert. Die Methodik

Mehr

Klassen können bekanntlich aus zwei Komponententypen bestehen, nämlich Attributen und Methoden.

Klassen können bekanntlich aus zwei Komponententypen bestehen, nämlich Attributen und Methoden. Objektzugriff Klassen können bekanntlich aus zwei Komponententypen bestehen, nämlich Attributen und Methoden. Attribute sind in der Klasse mit Datentyp und Namen deklariert im Objekt sind sie mit jeweils

Mehr