Java-Kurs Grafik Julian Drerup
Übersicht Wiederholung von bekannten Methoden Farben Schriften (Fonts) Kopieren und Löschen von Flächen Bilder erstellen Animationen Aufgabe
Wiederholung von bekannten Methoden Alle Methoden und Klassen für Grafiken gehören zu java.awt.* Die Ausgabe in ein Fenster(Frame) sollte durch die Überlagerung der Methode public void paint (Graphics g) erfolgen. Methoden: drawLine(int x1,int y1,int x2,int y2) Zeichnet Linie drawRect(int x1,int y1,int breite,int höhe) Zeichnet Rechteck drawPolygon([x],[y],int Anzahl Punkte) Zeichnet Polygon drawPolyline(([x],[y],int Anzahl Punkte) Zeichnet Punktkette drawOval(int x,int y,int breite,int höhe) Zeichnet Kreis,Oval drawArc((int x,int y,int breite,int höhe,int start Winkel,int Endwinkel) Zeichnet Kreisausschnitt fill einsetzen für draw Füllt geom.Figur aus
Farben SetColor(Color.Farbe);//bestimmt Farbe Color(int red,int green,int blue);//erstellt eigene Farbe mit 256 Farbstufen. Z.B. Color(255,255,0);//=orange Color.darker();//Methode verdunkel die Farbe Color.brighter();//Methode erhellt die Farbe Darker() und brighter() sind x*erweiterbar.z.B .col.darker().darker();//doppelt verdunkelt
Schriften drawString(String,int x,int y);//zeichnet Text in ein Fenster setFont(Schriftart, Schriftattribut);//setzt Schriftart fest. Verfügbare Schriftarten sind: SansSerif, Serif, Monospaced, Dialog und DialogInputs Verfügbare Schriftattribute sind: PLAIN(normal), BOLD (fett), ITALIC (kursiv) Ö Lö Äö
Kopieren und Löschen von Flächen Die Methode clearRect(int x,inty,int breite,int höhe) löscht das angegebene Rechteck,. (x,y) copyArea(int x, int y,int Breite,int Höhe,int dx, int dy)kopiert eine Fläche nach x+dx und y+dy
Bilder erstellen Laden von Bildern erfolgt mit der Methode getImage(„string filename“),der Klasse Toolkit.Es gibt ein lokales Bild(„Image“(gif or jpeg Format)) wieder Das Image-Objekt kann dann mit der Methode drawImage der Klasse Graphics angezeigt werden. Das Toolkit für die aktuelle Umgebung kann mit der Methode getToolkit der Klasse Component beschafft werden:
Beispiel public void paint(Graphics g) { Image img; img = getToolkit().getImage(„bild.gif"); g.drawImage(img,40,40,this); }
Bilder erstellen Der MediaTracker bietet eine Reihe von Methoden, um den Ladezustand der Bildes zu überwachen . addImage(Image img, int id);//ermöglicht den Zugriff des Bildes durch setzen einer id. waitForAll() wartet, bis alle Images vollständig geladen sind
Beispiel img = getToolkit().getImage(“bild.gif"); MediaTracker mt = new MediaTracker(this); mt.addImage(img, 0); try { //Warten, bis das Image vollständig geladen ist, mt.waitForAll(); } catch (InterruptedException e) { //nothing }
Animationen Das Grundprinzip einer Animation besteht darin, in einer Schleife die Methode repaint() wiederholt aufzurufen. Ein Aufruf von repaint führt dazu, daß die paint-Methode aufgerufen wird z.B.:public void startAnimation() { while (true) { repaint(); } }
Beispiel Counter public void startAnimation() { while (true) { repaint(); } } public void paint(Graphics g){ ++cnt; g.drawString("Counter = "+cnt,10,50); try { Thread.sleep(1000); } catch (InterruptedException e) { } } public static void main(String[] args){ Counter wnd = new Counter(); wnd.setSize(250,150); wnd.setVisible(true); wnd.startAnimation();
Aufgabe Versuche eine beliebige geom.Figur in einem Fenster zu bewegen.