Programmieren in Java Lösungen 1. Aufgabe a) <HTML> <HEAD> <TITLE>1. Aufgabe</TITLE> </HEAD> <BODY> <APPLET CODE="Aufg1.class" WIDTH=350 HEIGHT=150> <PARAM NAME=name VALUE="Nobody"> </APPLET> </BODY> </HTML> b) import java.awt.*; public class Aufg1 extends java.applet.Applet { Font f; String name; public void init() { f = new Font("Helvetica",Font.BOLD,48); this.name = getParameter("name"); if (this.name == null) { this.name = "Juergen"; } this.name = "Hallo " + this.name; } public void paint(Graphics g) { // Oval mit Farbe pink g.setColor(Color.pink); g.fillOval(10,10,330,100); // Roter Umfassungsrahmen, da Java keine Linienbreite // verarbeitet, wird die Linienbreite durch 4 Ovale // unterschliedlicher Pixelbreite simuliert g.setColor(Color.red); g.drawOval(10,10,330,100); g.drawOval(9,9,332,102); g.drawOval(8,8,334,104); g.drawOval(7,7,336,106); // Textausgabe g.setColor(Color.black); g.setFont(f); g.drawString(this.name,30,75); } } 2. Aufgabe a) import java.awt.*; public class Aufg2 extends java.applet.Applet { 1 Programmieren in Java public void paint(Graphics g) { Dimension d = getSize(); g.setColor(Color.yellow); g.fillRect(0,0,d.width-1,d.height-1); // Zeichnen der Tasse // Blaue Untertasse g.setColor(Color.blue); // fillOval(x,y,hoehe,breite) g.fillOval(10,110,150,40); g.setColor(Color.black); // drawOval(x,y,hoehe,breite) g.drawOval(10,110,150,40); g.drawOval(60,122,50,16); // rote Tasse g.setColor(Color.red); // Henkel // drawArc(x,y,hoehe,breite,startwinkel,bogen) g.drawArc(130,30,40,50,-120,210); g.fillArc(20,-70,130,200,180,180); g.setColor(Color.black); g.fillOval(20,20,130,20); // Beschriftung g.drawString("Kaffetasse",60,170); } } b) <HTML> <HEAD> <TITLE>2. Aufgabe</TITLE> </HEAD> <BODY> <APPLET CODE="Aufg2.class" WIDTH=200 HEIGHT=200> </APPLET> </BODY> </HTML> 3. Aufgabe a) import java.awt.*; public class Aufg3 extends java.applet.Applet { // Instanzvariable private int eckenAnz = 12; private int radius = 60; private Dimension s; private int xKoord[]; private int yKoord[]; // Methoden public void init() { s = getSize(); eckenAnz = 6; radius = 60; xKoord = new int[eckenAnz]; yKoord = new int[eckenAnz]; for (int i = 0; i < eckenAnz; i++) 2 Programmieren in Java { xKoord[i] = (int) (s.width / 2 + radius * Math.cos(i * 2 * Math.PI / eckenAnz)); yKoord[i] = (int) (s.height / 2 + radius * Math.sin(i * 2 * Math.PI / eckenAnz)); } } public void paint(Graphics g) { g.setColor(Color.white); g.fillRect(0,0,s.width,s.height); g.setColor(Color.black); g.drawPolygon(xKoord, yKoord, eckenAnz); /* for (int i = 0; i < eckenAnz; i++) for (int j = 0; j < eckenAnz; j++) g.drawLine(xKoord[i], yKoord[i], xKoord[j], yKoord[j]); */ } } b) <HTML> <HEAD> <TITLE>3. Aufgabe</TITLE> </HEAD> <BODY> <APPLET CODE="Aufg3.class" WIDTH=200 HEIGHT=200> </APPLET> </BODY> </HTML> 4. Aufgabe a) import java.awt.*; public class Aufg4 extends java.applet.Applet { /* Abmessungen des Fensters */ private static int hoehe; private static int breite; /* Applet-Verarbeitungsmethoden */ public void init() { Dimension d = getSize(); hoehe = d.height - 1; breite = d.width - 1; } public void paint(Graphics g) { g.setColor(Color.yellow); g.fillRect(0,0,breite,hoehe); g.setColor(Color.black); double b; int rx = breite / 2; int ry = hoehe / 2; for (int i = 0;i < 360; i++) { b = i * Math.PI / 180; 3 Programmieren in Java int x = (int) (breite / 2 * Math.sin(12*b)); int y = (int) (hoehe / 2 * Math.sin(12*b)); int rx1 = (int)(breite/2 + (x * Math.cos(b))); int ry1 = (int)(hoehe/2 + (y * Math.sin(b))); g.drawLine(rx,ry,rx1,ry1); rx = rx1; ry = ry1; } } } b) <HTML> <HEAD> <TITLE>5. Aufgabe</TITLE> </HEAD> <BODY> <APPLET CODE="Aufg4.class" WIDTH=300 HEIGHT=300> </APPLET> </BODY> </HTML> 4