Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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.

Ähnliche Präsentationen


Präsentation zum Thema: "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."—  Präsentation transkript:

1 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 11. Vorlesung WS-03/04

2 IKG Dörschlag, Plümer, Gröger Einführung in die Programmierung mit Java WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Der Nullpointer Schlüsselwort : null Einsatz : kann jeder Referenzvariable (= Variable/Attribut von Typ einer Klasse) zugewiesen werden ist die default-Referenz einer Referenzvariable hat keine Methoden oder Attribute

3 IKG Dörschlag, Plümer, Gröger Einführung in die Programmierung mit Java WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Der Nullpointer - Beispiel 1 zur Nutzung - public class Polygon { Punkt[ ] part = null; public void resize( int length){ if( part == null){ part = new Punkt[length]; } else{ Punkt[] neu = new Punkt[length]; if( length > part.length){ length = part.length; } for( int i = 0; i < length; i++){ neu[i] = part[i]; } part = neu; } } }

4 IKG Dörschlag, Plümer, Gröger Einführung in die Programmierung mit Java WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Der Nullpointer - Beispiel 2 zur Nutzung - public class ListElement { Object wert; ListElement naechster = null; public ListElement( Object wert){ this.wert = wert; } public void fuege_an( Object wert){ ListElement weiter = this; while( weiter.naechster != null){ weiter = weiter.naechster; } weiter.naechster = new ListElement( wert); }

5 IKG Dörschlag, Plümer, Gröger Einführung in die Programmierung mit Java WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Der Nullpointer - Beispiel 2 zur Nutzung - public class ListElement {... public Object gib_Wert_von( int id) throws ArrayIndexOutOfBoundsException { ListElement weiter = this; while( id > 0){ weiter = weiter.naechster; if( weiter == null){ throw( new ArrayIndexOutOfBoundsException()); } id--; } return( weiter.wert); }}

6 IKG Dörschlag, Plümer, Gröger Einführung in die Programmierung mit Java WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 G raphical U ser I nterfaces

7 IKG Dörschlag, Plümer, Gröger Einführung in die Programmierung mit Java WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 eigenständige Anwendungen javax.swing.JFrame Anlegen : Über das Menü (in Forte): 1.Datei -> Neu 2.im sich öffenden Fenster Templates den OrdnerSwing Forms öffnen und JFrame auswählen und weiter mit Next 3.den Namen eingeben (, eventuell das Package (Verzeichnis) in dem die neu Klasse liegen soll auswählen) und mit Finish das Erzeugen abschließen 4.es öffnet sich automatisch die Forte-Umgebung GUI Editing

8 IKG Dörschlag, Plümer, Gröger Einführung in die Programmierung mit Java WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 GUI Editing Explorer [Filesystem]

9 IKG Dörschlag, Plümer, Gröger Einführung in die Programmierung mit Java WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 GUI Editing Source Editor Der Quellcode: Klasse.java schreib geschützter Bereich

10 IKG Dörschlag, Plümer, Gröger Einführung in die Programmierung mit Java WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 GUI Editing Component Inspector zur ausgewählen Form gehörende grafische Komponenten z.B. Buttons die Eigenschaften der selektierten Komponente

11 IKG Dörschlag, Plümer, Gröger Einführung in die Programmierung mit Java WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 GUI Editing Form Darstellung des Aussehens der Oberfläche GUI KomponentengruppenLayouts und Rahmen Auswahlobjekte, sie können durch anklicken des Symbols und dann anklicken des Form-Fensters der Oberfläche hinzugefügt werden

12 IKG Dörschlag, Plümer, Gröger Einführung in die Programmierung mit Java WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Layout Manager Button 1 ohne Layout Manager : Anwendung Aussehen : Anwendung Hinzufügen eines Buttons Aktion :

13 IKG Dörschlag, Plümer, Gröger Einführung in die Programmierung mit Java WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Layout Manager Button 2 ohne Layout Manager : Anwendung Aussehen : Anwendung Hinzufügen eines weiteren Buttons Aktion : Button 1 ungünstig !! wegen der Überlagerung von Button 1

14 IKG Dörschlag, Plümer, Gröger Einführung in die Programmierung mit Java WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Layout Manager Layout Manager entscheiden über die Anordnung von Komponenten auf der zugehörigen Oberfläche java.awt.BorderLayout java.awt.GridLayout CENTER NORTH EAST SOUTH WEST [0,0][0,1] [1,0] Beispiele :

15 IKG Dörschlag, Plümer, Gröger Einführung in die Programmierung mit Java WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 eine Oberfläche mit Layout java.awt.BorderLayout NORTH EAST SOUTH WEST Beispiel : Button 2 Button 1 Darstellung : Button 2 Button 1

16 IKG Dörschlag, Plümer, Gröger Einführung in die Programmierung mit Java WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 das Layout bestimmen 1. neues Layout wählen 2. auf das Form-Fenster klicken aktives Layout verfügbare Layouts

17 IKG Dörschlag, Plümer, Gröger Einführung in die Programmierung mit Java WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Darstellen von Text javax.swing.JLabel Der Nutzer hat keinen direkten Zugriff auf den Text 1.auf das JLabel- symbol klicken 2. auf das Form- Fenster klicken

18 IKG Dörschlag, Plümer, Gröger Einführung in die Programmierung mit Java WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Eingabe und darstellen von Text javax.swing.JTextField Der Nutzer hat direkten Zugriff auf den Text 1.auf das JTextField- symbol klicken 2. auf das Form- Fenster klicken

19 IKG Dörschlag, Plümer, Gröger Einführung in die Programmierung mit Java WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Komponenten als Attribute public class Beispiel extends javax.swing.JFrame { /** Creates new form Beispiel */ public Beispiel() { initComponents(); }... // Variables declaration - do not modify private javax.swing.JTextField jTextField1; // End of variables declaration } eine graphische Komponente der Konstruktor

20 IKG Dörschlag, Plümer, Gröger Einführung in die Programmierung mit Java WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Komponenten als Attribute public class Beispiel extends javax.swing.JFrame {... /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ private void initComponents() { jTextField1 = new javax.swing.JTextField();... jTextField1.setText("jTextField1"); getContentPane().add( jTextField1, java.awt.BorderLayout.CENTER); pack(); }... } Initialisieren der Oberfläche und ihrer Elemente

21 IKG Dörschlag, Plümer, Gröger Einführung in die Programmierung mit Java WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Komponenten als Attribute public class Beispiel extends javax.swing.JFrame {... /** Exit the Application */ private void exitForm(java.awt.event.WindowEvent evt) { System.exit(0); } /** args the command line arguments */ public static void main(String args[]) { new Beispiel().show(); }... } Anweisungen die beim Schließen der Oberfläche bearbeitet werden die Main-Methode zum Starten der GUI-Anwendung

22 IKG Dörschlag, Plümer, Gröger Einführung in die Programmierung mit Java WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Aktionen starten javax.swing.JButton Ein Button den man drücken kann.

23 IKG Dörschlag, Plümer, Gröger Einführung in die Programmierung mit Java WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 javax.swing.JButton Ereignisse (=Events) mit Aktionen verbinden Ereignis = drücken des Buttons

24 IKG Dörschlag, Plümer, Gröger Einführung in die Programmierung mit Java WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 javax.swing.Jbutton ActionListener Was soll im Fall eines Ereignisses (=drücken von Button 1) gemacht werden ?? Anweisungen die ausge- führt werden

25 IKG Dörschlag, Plümer, Gröger Einführung in die Programmierung mit Java WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 public class Beispiel extends javax.swing.JFrame {... /** Exit the Application */ private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { String text = jButton1.getText(); char[] inhalt = text.toCharArray(); text = ; for( int i = inhalt.length - 1; i >= 0; i--){ text += inhalt[i]; } jButton1.setText( text); }... } Action auf Knopfdruck Beispiel: Knopftitel invertieren

26 IKG Dörschlag, Plümer, Gröger Einführung in die Programmierung mit Java WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Reaktionen auf die Maus Beispiel: Fluchtframe Sobald die Jlabel-Komponente mit dem Mauszeiger berührt wird, soll die ganze Oberfläche flüchten

27 IKG Dörschlag, Plümer, Gröger Einführung in die Programmierung mit Java WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Reaktionen auf die Maus Beispiel: Fluchtframe

28 IKG Dörschlag, Plümer, Gröger Einführung in die Programmierung mit Java WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 public class Beispiel extends javax.swing.JFrame {... /** Exit the Application */ private void jLabel1MouseEntered( java.awt.event.MouseEvent evt){ java.awt.Point mouse_location = evt.getPoint(); mouse_location.translate(this.getX() + 40, this.getY() +40); this.setLocation(mouse_location); }... } Reaktionen auf die Maus Beispiel: Fluchtframe auslesen der Mausposition bestimmen der neuen Position der Anwendung verschieben der Anwendung an die neue Position

29 IKG Dörschlag, Plümer, Gröger Einführung in die Programmierung mit Java WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Übungsaufgabe Buttontexter Erstelle eine Anwendung, die aus einem Textfeld für Eingaben (JTextField) und einem Knopf (JButton) besteht. Alle beide müssen gleichzeitig sichtbar sein. Auf Knopfdruck soll der Text aus dem Textfeld auf dem Button erscheinen. Probiert aus, was ihr mit den Properties/Eigenschaften bei den Komponenten alles anrichten könnt.

30 IKG Dörschlag, Plümer, Gröger Einführung in die Programmierung mit Java WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Hausaufgabe Währungsrechner Erstelle eine Anwendung, die aus einem Textfeld für Eingaben (JTextField), einem Textfeld für Anzeigen (JLabel) und einem Knopf (JButton) besteht. Alle drei müssen gleichzeitig sichtbar sein. Auf Knopfdruck soll der im Textfeld eingegebene Wert von Euro in Dollar umgerechnet und im anderen Textfeld angezeigt werden.


Herunterladen ppt "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."

Ähnliche Präsentationen


Google-Anzeigen