Upload
nadine-hase
View
218
Download
1
Embed Size (px)
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).