Java-Kurs Übung Grafik in Java - das Abstract Windowing Toolkit

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

DVG Einfache Klassen Einfache Klassen. DVG Einfache Klassen 2 Strukturen Beispiel: Personendaten bestehen aus –String name –String vorname.
Ein Beispiel in Java.
Java: Objektorientierte Programmierung
Java2D Richard Göbel.
Java: Grundlagen der Objektorientierung
Abstrakte Klassen.
Ein Beispiel in Java.
Polymorphie (Vielgestaltigkeit)
DO...WHILE Anweisung.
Sommersemester 2003 Lars Bernard
Sommersemester 2004 Jan Drewnak Entwicklung und Einsatz von Geosoftware I Praktikum Sitzung 8 Sitzung 8: Zeichnen in Java.
Einführung in die Programmierung mit Java
Java-Kurs Grafik Julian Drerup.
Java-Kurs - 2. Übung Entwicklungsumgebung Struktur von Programmen
Programmieren mit JAVA
Programmieren mit JAVA
Programmieren mit JAVA Teil V. Grafikausgabe mit JAVA, das AWT Java wurde von Anfang an mit dem Anspruch entwickelt, ein vielseitiges, aber einfach zu.
1DVG3 - Paint Paint ein Zeichenprogramm. DVG3 - Paint 2 Paint – ein Zeichenprogramm.
DVG1 - Applets1 Applets. DVG1 - Applets2 Die Klasse Applet n Applets sind Grafikobjekte, die unter Steuerung eines anderen Programms (z.B. eines Browsers,
1DVG3 - anonyme Klassen Anonyme Klassen. DVG3 - anonyme Klassen 2 Syntax new BasisKlasse(Parameterliste) { Modifikationen und Erweiterungen der Basisklasse.
DVG A bstract W indow T oolkit. DVG Als standardisierte portable Grafikschnittstelle existiert in JAVA das Package AWT - Abstract Window.
DVG Einfache Klassen 1 Einfache Klassen. 2DVG Einfache KlassenStrukturen Beispiel: Personendaten bestehen aus String name String name.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
© 2002 Dr. Cavelius - Ley - Pohlig - Taulien Step by step zum JFrame 1 Zum JFrame Step by step by step by step by step by step by step by step by.
Bestimmung des ggT zweier Zahlen
© 2005 Pohlig GK Informatik K Zum JFrame Step by step by step by step by step by step by step by step by.
© 2006 MPohlig Grundkurs Informatik mit Java 1 JFrame-Vorlage Step by step by step by step by step by step by step by step by.
Verzweigung.
FH-Hof Java2D - Grundlagen Richard Göbel. FH-Hof Java2D - Funktionen Java2D unterstützt: das Zeichnen von Grafiken die Darstellung von Texten die Darstellung.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
AWT und JFC Abstract Windowing Toolkit
Java ohne Kara. Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen.
CuP - Java Elfte Vorlesung Montag, 11. November 2002.
Objektorientiertes Konstruieren
Optimale Ursprungsgerade
Programmierpraktikum Java SS 2005
Programmiervorkurs WS 2014/15 Methoden
Programmiervorkurs WS 2014/15 Instanzmethoden
Java-Kurs - 8. Übung Besprechung der Hausaufgabe.
CuP - Java Achte Vorlesung Entspricht ungefähr Kapitel 4.1 des Skriptums Montag, 28. Oktober 2002.
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
Java-Kurs Übung Benutzeroberflächen und Graphik
© 2005 Pohlig Informatik Jg. 11 mfH Michael Pohlig 1 Zum JFrame Step by step by step by step by step by step by step by step by.
Java-Kurs Übung Benutzeroberflächen und Graphik Frames (Fenster)
Java-Applets und URLs APP Philip Graf, Andreas Bößl.
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
Einführung in die Programmierung mit Java
Java-Kurs - 5. Übung Besprechung der Übungsaufgabe Klassen und Objekte
Einführung in die Programmierung mit Java
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003.
Java-Kurs Übung zAusnahmebehandlung: Exceptions zEin-/Ausgabe yDatenströme.
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.
GUI Programmierung in Java Branimir Djordjevic. GUI - Wichtige Begriffe -  Die Swing-Bibliothek in Java stellt zum Beispiel die folgenden Windows zur.
Java Programme nur ein bisschen objektorientiert.
Vererbung in Java. public abstract class Form { protected int breite; protected int hoehe; protected String farbe; /** * Erzeuge eine Form der Breite.
Objektorientierung Gliederung von Daten und Funktionen zu Objekten
JAVA lernen: Methoden.
Java-Kurs - 5. Übung Das Paradigma der Objektorientierung (OO)
Java-Kurs Übung Klassen und Objekte: Vererbung (Fortsetzung)
Java-Kurs - 2. Übung primitive Datentypen, Konstanten
Einführung in die Programmierung mit Java
Grundkurs Informatik 11-13
Mit der Turtle Java Programmieren
Grundkurs Informatik mit Java
Mit Java die Turtle steuern
Ein Referat von Sabrina Vissel, darleen paul und yannick fuchs
«Delegierter» Methoden Schablone Funktionszeiger
1. Die rekursive Datenstruktur Liste 1
 Präsentation transkript:

Java-Kurs - 12. Übung Grafik in Java - das Abstract Windowing Toolkit eine kurze Wiederholung

Klassenhierarchie AWT Component beliebige graphische Entitäten (from awt) geschachtelte Komponenten Container (from awt) eingebettete Programme eigenständige Programme „Toplevel Fenster“ Window Panel (from awt) (from awt) Fenster mit Bedienelementen „Sind sie sicher? Ja/Nein“ Frame Dialog (from awt) (from awt) Applet (from applet) FileDialog (from awt)

Fenster in Java AWT: Achtung! Java hat die vollständige Kontrolle über das Fenster, d. h. kein automatisches Schließen des Fensters Rekonstruieren des Fensterinhaltes nach Überdeckung oder nach Verschieben. Aber: zu jedem Fenster ist (durch die Klasse Frame) die Methode paint definiert paint wird vom System automatisch aufgerufen, wenn der Fensterinhalt durch eine Veränderung betroffen ist

Die Methode Paint (I) Die Ausgabe in ein Fenster sollte durch die Überlagerung der Methode paint erfolgen paint bekommt beim Aufruf eine Instanz der Klasse Graphics übergeben. (diese referenziert die eigentliche Zeichenfläche) Definition von paint: public void paint (Graphics g)

Die Methode Paint (II) g : referenziert die Zeichenfläche (0,0) (100,100) (200,200)

Überlagerung der Methode paint

Zeichenmethoden der Klasse Graphics (I) Setzen der aktuellen Zeichenfarbe: setColor(Color farbe ); Objekt der Klasse Color z.B.: Color.red Color.black Zeichnen einer Linie von (x1,y1 ) nach (x2,y2 ): drawLine(int x1, int y1, int x2, int y2 ); Hinweis: der Koordinatenursprung (0,0) liegt in der linken oberen Fensterecke!

Zeichenmethoden der Klasse Graphics (II) Zeichnen einer Ellipse: (x1,y1 ) (x2,y2 ) drawOval(int x1, int y1, int x2, int y2 );

Graphische Darstellung eines Rechtecks +x (x+halbe_Breite,y-halbe_Hoehe) +y Schwerpunkt (x,y) (x-halbe_Breite, y+halbe_Hoehe)

Beispiel: Die Klasse Rechteck (I) import java.awt.*; class Rechteck extends Figur { // --- Instanzvariablen --------------------------------------------- float breite, höhe; int x, y; // Koordinaten des Schwerpunktes Color farbe; // --- Konstruktoren ------------------------------------------------ Rechteck(float breite_1, float höhe_1, int x, int y, Color farbe) { breite=breite_1; höhe=höhe_1; this.x=x; this.y=y; this.farbe=farbe; }

Beispiel: Die Klasse Rechteck (II) // --- Methoden ----------------------------------------------------- float fläche () { float flächeninhalt; flächeninhalt=breite*höhe; return flächeninhalt; } void ausgeben() { System.out.println("Dieses Rechteck hat folgende Eigenschaften:"); System.out.print("Breite: "); System.out.println(breite); System.out.print("Höhe: "); System.out.println(höhe); System.out.print("Fläche: "); System.out.println(fläche());

Beispiel: Die Klasse Rechteck (III) void graphisch_ausgeben(Graphics g) { int halbe_breite=(int)(breite/2f+0.5f); //gerundete Werte int halbe_höhe=(int)(höhe/2f+0.5f); g.setColor(farbe); g.drawLine(x-halbe_breite, y-halbe_höhe, // Linie oben x+halbe_breite, y-halbe_höhe); g.drawLine(x+halbe_breite, y-halbe_höhe, // Linie rechts x+halbe_breite, y+halbe_höhe); g.drawLine(x-halbe_breite, y+halbe_höhe, // Linie unten g.drawLine(x-halbe_breite, y-halbe_höhe, // Linie links x-halbe_breite, y+halbe_höhe); }

Beispieldatei Datei zur vorigen Folie \Java Uebung 12\Beispiele\Rechteck.java

Beispiel: Die Klasse Grafigur1 (I) import java.awt.*; class Grafigur1 extends Frame { Figur figur1=null; Figur figur2=null; public static void main (String args[]) { Grafigur1 my_window1 = new Grafigur1("Fenster 1"); my_window1.figur1=new Ellipse(40f,25f,100,100,Color.red); my_window1.figur2=new Dreieck(50f,30f,200,130,Color.blue); my_window1.repaint(); // Signalisiert dem System, daß sich der // Fensterinhalt geändert hat. Folge: // automatischer Aufruf von paint() pause(15000);

Beispiel: Die Klasse Grafigur1 (II) my_window1.setVisible(false); my_window1.dispose(); System.exit(0); } public static void pause(int millisecs) { try { Thread.sleep(millisecs); } catch (InterruptedException e) { // do nothing

Beispiel: Die Klasse Grafigur1 (III) Grafigur1(String titel) { super(titel); setSize(400,350); setVisible(true); } public void paint (Graphics g) { if (figur1 != null) figur1.graphisch_ausgeben(g); if (figur2 != null) figur2.graphisch_ausgeben(g);

Beispieldatei Datei zur vorigen Folie \Java Uebung 12\Beispiele\Grafigur1.java

double Zahl = Math.random(); Zufallszahlen in Java Die Methode Math.random() erzeugt Zufallszahlen zwischen 0 und 1 mit 0  Zahl < 1 Verwendung: double Zahl = Math.random(); Zufallszahl zwischen 1 und 4 int zahl = (int) Math.random()*4.0 +1.0;

Übungsaufgaben Stellen Sie in der Klasse Grafigur1 anstelle der beiden Variablen figur1, figur2 eine Speicherstruktur für beliebige Figuren mit Hilfe eines Arrays zur Verfügung. Diese Struktur soll in der Methode paint() verwendet werden, um die darin gespeicherten Objekte anzuzeigen. Tip: merken Sie sich die Anzahl der gespeicherten Objekte in einer Instanzvariablen, so daß sie bei der Ausgabe nicht zuviele Objekte anzuzeigen versuchen. Schreiben Sie ein Programm, das 50 zufällig ausgewählte Figuren mit zufälligen Größen an zufällige Positionen setzt und diese in einem Fenster anzeigt.