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 Die letzte Hausaufgabe Polygon.txt : 1;2.0;3.0; 2;4.0;3.0; 3;8.0;9.0; 4;7.0;10.0; 5;1.0;6.0;

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 Die letzte Hausaufgabe polygon.txt einlesen public class Polygon { public void lade(String dateiname){ BufferedReader br; String line; int i = 0; try{ br = new BufferedReader(new FileReader(dateiname)); while( (line = br.readLine()) != null){ eckpunkt[i++] = new Punkt( line); } br.close(); } catch( IOException ioe){ ioe.printStackTrace(); }

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 Die letzte Hausaufgabe der Konstruktor zum Zerlegen public class Punkt {... public Punkt(String line) { String[] parts = new String[3]; int first = 0, last, i = 0; while((last = line.indexOf(";", first)) != -1){ parts[i] = line.substring( first, last); i++; first = last + 1; } pnr = Integer.parseInt(parts[0]); x = Double.parseDouble(parts[1]); y = Double.parseDouble(parts[2]); }... }

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 Die letzte Hausaufgabe das Polygon speichern public class Polygon {... public void write(String dateiname) { try{ PrintWriter pw = new PrintWriter( new BufferedWriter( new FileWriter(dateiname))); for( int i = 0; i < eckpunkt.length; i++){ pw.print( eckpunkt[i].gibID() + “;“); } pw.println( " "); pw.println( "Umfang des Polygons: "+String.valueOf( umfang())); pw.close(); } catch( IOException ioe){ ioe.printStackTrace(); }

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 Die letzte Hausaufgabe polygon_ausgabe.txt polygon-ausgabe.txt : 1;2;3;4;5; Umfang des Polygons: 17.836418664229054

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

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 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; } } }

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 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); }

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 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); }}

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 G raphical U ser I nterface‘s

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 eigenständige Anwendungen javax.swing.JFrame Anlegen : Über das Menü (in Forte): 1.Datei -> Neu 2.im sich öffenden Fenster „Templates“ den Ordner „Swing 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“

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 GUI Editing Explorer [Filesystem]

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 GUI Editing Source Editor Der Quellcode: Klasse.java schreib geschützter Bereich

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 GUI Editing Component Inspector zur ausgewählen Form gehörende grafische Komponenten z.B. Buttons die Eigenschaften der selektierten Komponente

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

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 Layout Manager Button 1 ohne Layout Manager : Anwendung Aussehen : Anwendung Hinzufügen eines Buttons Aktion :

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

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

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 eine Oberfläche mit Layout java.awt.BorderLayout NORTH EAST SOUTH WEST Beispiel : Button 2 Button 1 Darstellung : Button 2 Button 1

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 das Layout bestimmen 1. neues Layout wählen 2. auf das Form-Fenster klicken aktives Layout verfügbare Layouts

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

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

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

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

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 Komponenten als Attribute public class Beispiel extends javax.swing.JFrame {... /** Exit the Application */ private void exitForm(java.awt.event.WindowEvent evt) { System.exit(0); } /** * @param 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

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 Aktionen starten javax.swing.JButton Ein Button den man drücken kann.

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 javax.swing.JButton Ereignisse (=Events) mit Aktionen verbinden Ereignis = drücken des Buttons

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 javax.swing.Jbutton ActionListener Was soll im Fall eines Ereignisses (=drücken von Button 1) gemacht werden ?? Anweisungen die ausge- führt werden

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

31 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

32 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

33 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

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

35 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