Kein Folientitel - Institut für Geodäsie und Geoinformation der

Werbung
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
Übersicht
• Benutzeroberflächen
– Fenster (JFrame), Buttons, Texteingabefenster
– Arbeiten mit dem Visual Editor (VE)
Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05
2
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
– ....
Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05
3
Erzeugen eines Frame: Schritt 1
Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05
4
Erzeugen eines Frame: Schritt 2
Name der
Klasse
mit main
Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05
5
Erzeugen eines Frame: Ergebnis 1
Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05
6
Erzeugen eines Frame: Ergebnis 2
Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05
7
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
Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05
8
Ausführen des Frame
Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05
9
Frame
Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05
10
Exkurs: falls VisualClass bei Neu nicht da ist
• Menü: Fenster - Perspektive anpassen - Datei > neu
aufklappen:
Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05
11
Exkurs: falls Java Beans Fenster nicht da ist
• Menü: Fenster - Sicht anzeigen -andere
– Doppelklick auf Java - Java Beans
Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05
12
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 ButtonKlick/Menuewahl/sonst. Ereignis (z.B. Mausbewegung)
reagiert
Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05
13
Fenster des Visual Editors
Java Beans
Fenster
Design
des Frame
Erzeugter
Programmcode
Eigenschaften (des im
Java Beans Fenster
aktivierten
Elements)
Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05
14
Ändern des Layouts
Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05
15
Einfügen eines Button
1. Klick:
JButton
2. Klick:
Positionierung
Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05
16
Einfügen eines Textfeldes
1. Klick:
JTextField
2. Klick:
Positionierung
Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05
17
Ergebnis: Textfeld + Button
Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05
18
Button-Text hinzufügen
Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05
19
Textfeld und Button: erzeugte Attribute
• Eclipse hat Referenzvariablen (Attribute von
MeinFenster) für den Button (jButton) und das
Textfeld (jTextField) erzeugt
Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05
20
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
Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05
21
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
Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05
22
Reaktion auf Button-Klick: Schritt 1
Rechtsklick
auf Button
Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05
23
Reaktion auf Button-Klick: Schritt 2
Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05
24
Reaktion auf Button-Klick: Erzeugte Methode
hier wird Code eingefügt, der bei
Klick auf Button ausgeführt wird
Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05
25
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
Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05
26
Bsp: Duplizieren des Textes bei Klick auf Button
Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05
27
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)
Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05
28
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
Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05
29
Übungsaufgabe
• Programmiert eine Anwendung mit einem Button. Bei
Klick auf diesen Button soll der Text "Hallo"
ausgegeben werden.
Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05
30
Ü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
Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05
31
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).
Gröger, Dörschlag, Plümer - Einführung in Java - 1. Semester - WS 04/05
32
Herunterladen