32
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. Vorlesung WS 2004/2005

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

Embed Size (px)

Citation preview

Page 1: 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 GeoinformationProf. Dr. L. Plümer, Dipl.-Ing. D. Dörschlag, Dr. G. Gröger

Einführung in die Programmierung mit Java

13. Vorlesung WS 2004/2005

Page 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

Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05 2

Übersicht

• Benutzeroberflächen

– Fenster (JFrame), Buttons, Texteingabefenster

– Arbeiten mit dem Visual Editor (VE)

Page 3: 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

Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05 3

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 Pakete:– Java 2D /3D– Drag and Drop– ....

Page 4: 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

Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05 4

Erzeugen eines Frame: Schritt 1

Page 5: 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

Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05 5

Erzeugen eines Frame: Schritt 2

Name der Klasse

mit main

Page 6: 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

Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05 6

Erzeugen eines Frame: Ergebnis 1

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

Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05 7

Erzeugen eines Frame: Ergebnis 2

Page 8: 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

Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05 8

Erzeugen eines Frame: Schritt 3

• In der main-Methode müssen zwei Befehle ergänzt werden:

• Erzeugen eines Objekts (Unterklasse von JFrame) mit new

• Aufruf von setVisible(true): zeigt JFrame

Page 9: 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

Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05 9

Ausführen des Frame

Page 10: 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

Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05 10

Frame

Page 11: 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

Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05 11

Exkurs: falls VisualClass bei Neu nicht da ist

• Menü: Fenster - Perspektive anpassen - Datei > neu aufklappen:

Page 12: 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

Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05 12

Exkurs: falls Java Beans Fenster nicht da ist

• Menü: Fenster - Sicht anzeigen -andere– Doppelklick auf Java - Java Beans

Page 13: 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

Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05 13

Anmerkung

• Programme bisher (ohne Frames): – Erzeugen einer Klasse mit Methode "main"– eigener Programmcode in "main" (oder in Methoden, die von

"main" aus aufgerufen werden)

• mit Frames: – Definition einer Unterklasse von JFrame ("Fenster")– in "main" wird Objekt dieser Unterklasse erzeugt und Frame

gestartet– eigener Programmcode in Methode, die auf

Button-Klick/Menuewahl/sonst. Ereignis (z.B. Mausbewegung) reagiert

Page 14: 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

Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05 14

Fenster des Visual Editors

Java Beans Fenster

Eigenschaften (des im Java Beans Fenster aktiviertenElements)

Design des Frame

ErzeugterProgrammcode

Page 15: 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

Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05 15

Ändern des Layouts

Page 16: 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

Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05 16

Einfügen eines Button

1. Klick: JButton

2. Klick: Positionierung

Page 17: 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

Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05 17

Einfügen eines Textfeldes

1. Klick: JTextField

2. Klick: Positionierung

Page 18: 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

Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05 18

Ergebnis: Textfeld + Button

Page 19: 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

Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05 19

Button-Text hinzufügen

Page 20: 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

Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05 20

Textfeld und Button: erzeugte Attribute

• Eclipse hat Referenzvariablen (Attribute von MeinFenster) für den Button (jButton) und das Textfeld (jTextField) erzeugt

Page 21: 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

Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05 21

Programmierung der Oberfläche I

• Eclipse (der Visual Editor) erzeugt zu jedem graphischen Element (Button, Textfeld, Menue,..) automatisch eine Referenzvariable

• diese Referenzvariablen gehören zu entsprechenden Klassen (JButton, JTextField)

• für diese Referenzvariable können Methoden dieser Klassen aufgerufen werden

Page 22: 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

Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05 22

Programmierung der Oberfläche II

• Einem graphischen Element (Button, Textfeld, Menue,..) sind Ereignisse/Events (Klick auf Button/Menuefeld, Mausbewegung auf Textfeld,...) zugeordnet

• Einem graphischen Element können Methoden zugeordnet werden, die bei einem bestimmten Ereignis automatisch aufgerufen werden.– z.B. Klick auf Button

Page 23: 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

Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05 23

Reaktion auf Button-Klick: Schritt 1

Rechtsklick auf Button

Page 24: 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

Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05 24

Reaktion auf Button-Klick: Schritt 2

Page 25: 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

Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05 25

Reaktion auf Button-Klick: Erzeugte Methode

hier wird Code eingefügt, der beiKlick auf Button ausgeführt wird

Page 26: 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

Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05 26

Methoden für Textfelder (Klasse JTextField)

Methoden der Klasse javax.swing.JTextField• String getText(): liefert Text in Textfeld• void setText(String): setzt Text in Textfeld• weitere Methoden: Javadoc

Beispiel: javax.swing.JTextField t;

....................String st = t.getText();t.setText(st+st); //Dupliziert Text in Textfeld

Page 27: 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

Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05 27

Bsp: Duplizieren des Textes bei Klick auf Button

Page 28: 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

Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05 28

Umwandeln von String in Zahl• typische Anwendung: mit Eingabe in Textfeld soll gerechnet

werden.• Methode: static int parseInt(String) der Klasse

Integer• Beispiel:

javax.swing.JTextField 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)

Page 29: 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

Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05 29

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

Page 30: 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

Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05 30

Übungsaufgabe

• Programmiert eine Anwendung mit einem Button. Bei Klick auf diesen Button soll der Text "Hallo" ausgegeben werden.

Page 31: 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

Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05 31

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

Page 32: 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

Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05 32

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