Institut für Kartographie und Geoinformation Prof. Dr. L. Plümer, Dipl.-Ing. D. Dörschlag, Dr. G....

Preview:

Citation preview

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

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)

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

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

Erzeugen eines Frame: Schritt 1

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

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

Erzeugen eines Frame: Ergebnis 1

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

Erzeugen eines Frame: Ergebnis 2

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

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

Ausführen des Frame

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

Frame

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:

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

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

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

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

Ändern des Layouts

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

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

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

Ergebnis: Textfeld + Button

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

Button-Text hinzufügen

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

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

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

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

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

Reaktion auf Button-Klick: Schritt 2

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

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

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

Bsp: Duplizieren des Textes bei Klick auf Button

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)

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

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.

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

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

Recommended