Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 11. Vorlesung WS 2002/2003.

Slides:



Advertisements
Ähnliche Präsentationen
Ein Beispiel in Java.
Advertisements

Java: Programmierung grafischer Oberflächen
Java: Programmierung grafischer Oberflächen
Java: Dynamische Datentypen
Listen Richard Göbel.
Ein Beispiel in Java.
Konstruktoren.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 7 User Interfaces in Java Sommersemester 2003 Lars Bernard.
Einführung in die Programmierung mit Java
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 9. Vorlesung WS 2002/2003.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 7. Vorlesung WS 2002/2003.
Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. Dirk Dörschlag Einführung in die Programmierung mit.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. D. Dörschlag Einführung in die Programmierung mit Java.
Java-Kurs - 2. Übung Entwicklungsumgebung Struktur von Programmen
Java-Kurs - 7. Übung Besprechung der Hausaufgabe Referenzvariablen
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Listen-
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Listen Prof. Dr. Christian Böhm in Zusammenarbeit mit Gefei Zhang
1DVG3 - Paint Paint ein Zeichenprogramm. DVG3 - Paint 2 Paint – ein Zeichenprogramm.
1DVG3 - anonyme Klassen Anonyme Klassen. DVG3 - anonyme Klassen 2 Syntax new BasisKlasse(Parameterliste) { Modifikationen und Erweiterungen der Basisklasse.
DVG Einführung in Java1 Einführung in JAVA.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Sommersemester 2004 Jan Drewnak Entwicklung und Einsatz von Geosoftware I Praktikum Sitzung 7 Sitzung 7: User Interfaces in Java.
Objektorientierte Modellierung
AWT und JFC Abstract Windowing Toolkit
Java: Programmierung grafischer Oberflächen
Einführung in die Programmierung
CuP - Java Elfte Vorlesung Montag, 11. November 2002.
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Java-AG Benutzeroberflächen Juni 2001 Michael Haas.
Lind 02/2005 Einführung in JAVA. Lind 02/2005 Beispiel: Mittelwert Es soll ein Programm erstellt werden, das den Mittelwert zweier reeller Zahlen berechnet.
Programmiervorkurs WS 2014/15 Methoden
Programmiervorkurs WS 2014/15 Instanzmethoden
Java-Kurs - 8. Übung Besprechung der Hausaufgabe.
Java-Kurs - 7. Übung Besprechung der Hausaufgabe Referenzvariablen
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Programmierpraktikum Java SS 2005 Mag.Thomas Hilpold.
Java-Kurs Übung Benutzeroberflächen und Graphik
Java-Kurs Übung Benutzeroberflächen und Graphik Frames (Fenster)
Java-Kurs Übung Besprechung der Hausaufgabe Listen und Mengen Komplexitäten Iteratoren (Durchlaufen von Listen/Mengen)
Vorlesung Einführendes Beispiel-
Einführung in die Programmierung mit Java
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 8. Vorlesung WS 2002/2003.
Einführung in die Programmierung mit Java
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 12. Vorlesung WS 2002/2003.
Java-Kurs Übung Besprechung der Hausaufgabe
Lösung der Hausaufgaben von Vorlesung 10 Universität Bonn Institut für Kartografie und Geoinformation Dipl.-Ing. Dörschlag, Dr. Gröger, Prof. Dr. Plümer.
Einführung in die Programmierung mit Java
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 11. Vorlesung WS 2001/2002.
G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/ Übungsaufgabe vom Logische Ausdrücke 1.true & false | true 2.(10>2)
Institut für Kartographie und Geoinformation Prof. Dr. L. Plümer, Dipl.-Ing. D. Dörschlag, Dr. G. Gröger Einführung in die Programmierung mit Java 13.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 9. Vorlesung WS 2002/2003.
1 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Malprogramm der vollständige und kommentierte Quellcode für.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 14. Vorlesung WS 2001/2002.
Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 9. Vorlesung WS 2002/2003.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 7. Vorlesung WS 2002/2003.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 9. Vorlesung WS 2001/2002.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. D. Dörschlag Einführung in die Programmierung mit Java.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. Dirk Dörschlag Einführung in die Programmierung mit.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 10. Vorlesung WS 2002/2003.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. D. Dörschlag Einführung in die Programmierung mit Java.
Einführung in die Programmierung mit Java
G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 03/041 Übungsaufgabe Ergänzt die Klasse Dreieck aus der Hausaufgabe um eine Methode,
Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. Dirk Dörschlag Einführung in die Programmierung mit.
Java Programme nur ein bisschen objektorientiert.
Import java.util.*; Hilfsklassen, die man eigentlich immer braucht.
Java-Kurs Übung Klassen und Objekte: Vererbung (Fortsetzung)
Einführung in die Programmierung mit Java
 Präsentation transkript:

Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 11. Vorlesung WS 2002/2003

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/032 Übersicht Besprechung der Hausaufgabe Allgemeine Listen/Suchstrukturen (Fortsetzung) Benutzeroberflächen (Fenster, Menüs, Buttons, Texteingabefenster,...)

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/033 Hausaufgabe Schreibt eine Methode der Klasse Polygon, die den Flächeninhalt eines Polygons berechnet. Hinweise: Orientiert euch an der Methode "Umfang" Formel zur Berechnung des Flächeninhalts (Gaussche Flächenformel) in Diskreter Mathe, Vorlesung 2: k = 1 5 (x k - x k+1 )(y k + y k+1 ) F = 1 2 

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/034 Wh.: Klasse "Polygon": Methode Umfang public class Polygon{ protected LinkedList punktliste; public double umfang() { double umfang = 0; Iterator ersterIt = punktliste.iterator(); Iterator zweiterIt = punktliste.iterator(); zweiterIt.next(); Punkt ersterPt, zweiterPt; while(zweiterIt.hasNext()) { ersterPt = (Punkt) ersterIt.next(); zweiterPt = (Punkt) zweiterIt.next(); umfang = umfang + ersterPt.abstand(zweiterPt); } ersterPt = (Punkt) punktliste.getLast(); zweiterPt = (Punkt) punktliste.getFirst(); umfang = umfang + ersterPt.abstand(zweiterPt); return umfang;} }

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/035 Klasse "Polygon": Methode Flächeninhalt public class Polygon{ protected LinkedList punktliste; public double flaecheninhalt() { double f = 0; Iterator ersterIt = punktliste.iterator(); Iterator zweiterIt = punktliste.iterator(); zweiterIt.next(); Punkt ersterPt, zweiterPt; while(zweiterIt.hasNext()) { ersterPt = (Punkt) ersterIt.next(); zweiterPt = (Punkt) zweiterIt.next(); f = f + (ersterPt.x() - zweiterPt.x()) * (ersterPt.y() + zweiterPt.y()); } ersterPt = (Punkt) punktliste.getLast(); zweiterPt = (Punkt) punktliste.getFirst(); f = f + (ersterPt.x() - zweiterPt.x()) * (ersterPt.y() + zweiterPt.y()); return Math.abs(f * 0.5);} }

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/036 Wh.: Listen und Mengen: vordefinierte Klassen AbstractCollection Set TreeSetHashSetLinkedListArrayList sortiert keine Duplikate AbstractMap Map TreeMapHashMap sortiert Einfache Container-DatenstrukturenAssoziative Datenstrukturen

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/037 Wh.: Laufzeiten / Komplexität const.(mittel)const.HashMap O(log n) TreeMap const. (mittel)const.HashSet O(log n) TreeSet O(n)const.LinkedList/ ArrayList Suchen mit KeySuchenEinfügen/ Löschen Klasse

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/038 HashMaps Speichern Objekte (Klasse Object) in Struktur Zuordnung eines (Such-)Schlüssel zu Objekt (Key-Value-Pair) effizientes Suchen über Schlüssel (Key) Key muss eindeutig sein (sonst wird letzter Eintrag mit identischem Key überschrieben) Methoden: –void put(Object Key, Object Value) //Einfügen –Object get(Object Key) //Suchen –void clear() –int size() Weitere Methoden: JavaDoc

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/039 Beispiel zu HashMap //Speicherung von Studenten in einer Struktur, in der //Studenten effizient nach Namen gesucht werden können import java.util.*;..... HashMap h = new HashMap(); //Erzeugen von Schlüsseln und Einfügen h.put("Schmitz",new Student("Schmitz","Peter")); h.put("Meyer",new Student("Meyer","Thomas")); h.put("Schulz",new Student("Schulz","Bernd")); h.put("Bauer",new Student("Bauer","Bettina"));..... Student s = (Student) h.get("Schulz");

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0310 Wrapper-Klassen Keys einer HashMap: Unterklasse von Object Problem: einfache Datentypen (int, long, double,...) sind keine Unterklassen von Object Lösung: Wrapper-Klassen: "Verpacken" eines einfachen Datentyps in Klasse Welche gibt es? –Klasse Integer: Bsp.: Integer i = new Integer(1234); –Klasse Double: Bsp.: Double d = new Double( ); –ebenso für andere einfache Datentypen (char, boolean,...) Methoden der Wrapper-Klassen: JavaDoc

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0311 Beispiel 1 zu HashMaps mit Wrapper-Klassen import java.util.*;..... HashMap h = new HashMap(); //Erzeugen von Schlüsseln und Einfügen h.put(new Integer(45678),new Student("Schmitz","Peter")); h.put(new Integer(76453),new Student("Meyer","Thomas")); h.put(new Integer(43234),new Student("Schulz","Bernd")); h.put(new Integer(56784),new Student("Bauer","Bettina"));..... Student s = (Student) h.get(new Integer(76453));

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0312 Beispiel 2 zu HashMaps mit Wrapper-Klassen import java.util.*;..... HashMap h = new HashMap(); //Erzeugen von Schlüsseln und Einfügen for(int matNr = 1 ; matNr < ; matNr = matNr + 1) { Student s = new Student("Schmitz","Peter",matNr); Integer key = new Integer(matNr); h.put(key, s); } //Suche: Student s = (Student) h.get(new Integer(76453));

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0313 Benutzeroberflächen: Bibliotheken Java-Klassenbibliotheken: AWT (Abstract Window Toolkit) –historisch erste Java-Klassenbibliothek für Oberflächen –Aussehen abhängig vom Betriebssystem –Paket java.awt.* Swing –Erweiterung des AWT –Aussehen unabhängig vom Betriebssystem –Paket javax.swing.* Weitere –Java 2D /3D –Drag and Drop –....

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0314 Erzeugen einer Anwendung ("Frame")

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0315 Ergebnis: Unterklasse von "Frame" Form

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0316 Einfügen eines "Button" 1. Klick 2. Klick

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0317 Einfügen eines Menüs 1. Klick 2. Klick

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0318 Ergänzen des Menüs um "MenueItems"

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0319 Ausführen des Programms

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0320 Verknüpfen von MenueItem mit Methode

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0321 Ergebnis: Methode zu MenueItem

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0322 Verknüpfen von Button mit Methode

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0323 Ergebnis: Methode zu Button (bei Mausklick)

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0324 Übungsaufgabe Programmiert eine Anwendung mit einem Button. Bei Klick auf diesen Button soll der Text "Hallo" ausgegeben werden.

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0325 Ändern des Layouts 1. Klick 2. Klick

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0326 Ausführen des Programms

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0327 Einfügen eines Textfeldes

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0328 Ausführen des Programms

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0329 Erzeugte Attribute

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0330 Literatur zu Forte Forte QuickStart Guide (PDF) Forte User Guide (PDF) Forte Tutorials Guide (PDF) zu finden auf der WWW-Seite dieser Veranstaltung

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0331 Anmerkung bisher (ohne Frames): –Erzeugen einer Klasse mit Methode "main" –eigener Programmcode in "main" (oder in Methoden, die von "main" aus aufgerufen werden) mit Frames: –Erzeugen einer Unterklasse von Frame (JFrame) –eigener Programmcode in Methode, die auf Button- Klick/Menuewahl/sonst. Ereignis reagiert –eine "main" gibt es hier auch, ist aber für uns nicht relevant –zusätzlich wird eine Frame-Datei erzeugt

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0332 Eigenschaften: der Component Inspector

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0333 Methoden für Textfelder Methoden der Klasse java.awt.TextField: String getText() void setText(String) weitere Methoden: Javadoc Beispiel: java.awt.TextField t; String st = t.getText(); t.setText(st+st);

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0334 Übungsaufgabe Schreibt eine Anwendung mit einem Button und zwei Textfeldern, so dass beim Klicken des Buttons der Text des einen Textfeldes im anderen Textfeld in Grossbuchstaben erscheint: Hinweis: –die Methode toUpperCase() wandelt einen String in Grossbuchstaben um –Das Klicken auf einen Button löst den Event Events - Mouse - MouseClicked aus

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0335 Weitere Methoden Methode der Klasse java.awt.Frame: void setSize(int, int ) –z.B. setSize(500,500); void setBackground(Color) –z.B. setBackground(java.awt.Color.magenta); Methoden der Klasse java.awt.Button: void setLabel(String) void setForeground(Color) void setBackground(Color) weitere Methoden: Javadoc

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0336 Umwandeln von String in Zahl typische Anwendung: mit Eingabe in Textfeld soll gerechnet werden. Methode: static int parseInt(String) der Klasse Integer Beispiel: java.awt.TextField tf; String s = tf.getText(); int i = Integer.parseInt(s); int j = 3*i + 8; Vorsicht: Wenn im String keine "Zahl" steht, stürzt das Programm ab (Lösung: Ausnahmebehandlung, Exceptions)

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0337 Hausaufgabe Programmiert eine Anwendung, die eine Temperatur von Celsius nach Fahrenheit und umgekehrt umrechnet. Die Ausgangstemperatur soll interaktiv eingegeben werden. Die Richtung der Berechnung soll über eine Checkbox eingestellt werden. Die Anwendung soll also so oder so ähnlich aussehen: Hinweis: das Programm zur Temperaturumrechnung findet Ihr in Vorlesung 3 (Musterlösung zur Hausaufgabe) Label (wie "Celsius") erzeugt mal mit Eine Checkbox erzeugt man mit. Die Methode boolean getState() der Klasse Checkbox gibt an, ob ein Häkchen da ist (true) oder nicht (false).