/***************************************************************/ /* Prof. Dr. Carsten Vogt */ /* FH Koeln, Fak. 07 / Nachrichtentechnik */ /* http://www.nt.fh-koeln.de/vogt */ /* */ /* Das Programm demonstriert eine kleine Auswahl grundlegender */ /* Grafikmethoden. */ /***************************************************************/ import java.awt.*; import javax.swing.*; class MyPanel extends JPanel { // paint-Methode zum Zeichnen der Grafik im Grafik-Fenster g // (wird z.B. automatisch aufgerufen durch den Oberflaechen-Verwalter // des Betriebssystems) public void paint(Graphics g) { // Linie zeichnen // mit Ausgangspunkt (x1,y1) = (10,50) // und Endpunkt (x2,y2) = (100,150): g.drawLine(10,50,100,150); // Kreisbogen zeichnen // mit linkem oberem Begrenzungspunkt (x1,y1) = (70,70), // [= linke obere Ecke des umschließenden Rechtecks] // umschließendem Rechteck der Groesse 140 x 140, // Ausgangswinkel 0 Grad // und ueberstrichenem Winkel 90 Grad: g.drawArc(70,70,140,140,0,90); // gefuellten Kreisbogen zeichnen // mit linkem oberem Begrenzungspunkt (x1,y1) = (260,70) // [= linke obere Ecke des umschliessenden Rechtecks] // umschliessendem Rechteck der Größe 140x140, // Ausgangswinkel 22 Grad // und ueberstrichenem Winkel 135 Grad: g.fillArc(260,70,140,140,22,135); // Rechteck zeichnen // mit linker oberer Ecke (x1,y1) = (450,50) // und Groesse 90 x 100: g.drawRect(450,50,90,100); // Rechteck mit abgerundeten Ecken zeichnen // mit linker oberer Ecke (x1,y1) = (600,50), // Groesse 90 x 100 // und Eckenrundung mit horiz. Ausdehnung 30 und vert. Ausdehnung 40: g.drawRoundRect(600,50,90,100,30,40); // Oval zeichnen // mit linkem oberen Begrenzungspunkt (x1,y1) = (750,50) // [= linke obere Ecke des umschliessenden Rechtecks] // horiz. Ausdehnung 150 und vert. Ausdehnung 90: g.drawOval(750,50,150,90); // Farbe ab hier auf Rot setzen: g.setColor(Color.red); // String zeichnen // mit Schriftart "Times Roman", Fettdruck und Groesse 20 // sowie Ausgangspunkt (x1,y1) = (10,270): String s = "Hello"; g.setFont(new Font("Times Roman",Font.BOLD,20)); g.drawString(s,10,270); // gefuelltes Rechteck zeichnen // mit linker oberer Ecke (x1,y1) = (100,250) // und Groesse 100 x 100: g.fillRect(100,250,100,100); // gefuelltes Oval zeichnen // mit linkem oberen Begrenzungspunkt (x1,y1) = (250,250), // [= linke obere Ecke des umschliessenden Rechtecks] // horiz. Ausdehnung 200 und vert. Ausdehnung 100: g.fillOval(250,250,200,100); // geschlossenen Polygonzug mit vier Ecken zeichnen, // dabei Angabe der x- und y-Werte in zwei Arrays: int xWerte1[] = { 500, 600, 700, 600 }; int yWerte1[] = { 280, 250, 280, 400 }; g.drawPolygon(xWerte1, yWerte1,4); // geschlossenen gefuellten Polygonzug mit acht Ecken zeichnen, // dabei Angabe der x- und y-Werte in zwei Arrays: int xWerte2[] = { 750, 800, 850, 900, 900, 850, 800, 750 }; int yWerte2[] = { 300, 250, 250, 300, 350, 400, 400, 350 }; g.fillPolygon(xWerte2, yWerte2,8); } } class FrameMitGrafik extends JFrame { // Konstruktor für umschliessenden Rahmen FrameMitGrafik(String st) { super(st); setForeground(Color.black); setBackground(Color.white); setFont(new Font("Dialog",Font.BOLD,12)); setSize(950,450); setLocation(0,0); MyPanel panel = new MyPanel(); getContentPane().add(panel); setVisible(true); } } public class BasicGraphics { public static void main(String args[]) { // Hauptprogramm: Erzeugung der Oberflaeche new FrameMitGrafik("Grafiken"); } }