import java.applet.Applet; import java.awt.Graphics; import java.awt.Color; import java.awt.Font; public class JavaTwee extends Applet { public void paint(Graphics pen) { int breedte, hoogte; int randAfstand = 5; // kleine auto's breedte = 144; hoogte = 120; pen.setColor(Color.red); this.tekenAuto(pen, randAfstand, randAfstand, breedte, hoogte); this.tekenAuto(pen, 500 - breedte - randAfstand, randAfstand, breedte, hoogte); pen.setColor(Color.blue); this.tekenAuto(pen, randAfstand, 500 - hoogte - randAfstand, breedte, hoogte); this.tekenAuto(pen, 500 - 144 - randAfstand, 500 - hoogte - randAfstand, breedte, hoogte); // grote auto breedte = 348; hoogte = 290; pen.setColor(Color.white); this.tekenAuto(pen, 500 / 2 - breedte / 2, 500 / 2 - hoogte / 2, breedte, hoogte); } private void tekenAuto(Graphics pen, int x, int y, int breedte, int hoogte) { /* multiBreedte en multiHoogte zijn de kleinste hoogte en breedte die * gebruikt gaan worden en als basis gaan dienen voor alle andere hoogtes * en breedten (de "multipliers"). * De originele en aanbevolen verhouding (anders zijn de wielen niet meer * rond maar ovaal en past de tekst niet) is: * breedte : hoogte * 6 : 5 */ int multiBreedte = breedte / 12; int multiHoogte = hoogte / 10; // teken het bovenstuk pen.drawLine(x + multiBreedte * 5, y, x + multiBreedte * 3, y + multiHoogte * 4); pen.drawLine(x + multiBreedte * 9, y, x + multiBreedte * 11, y + multiHoogte * 4); pen.drawRect(x + multiBreedte * 5, y, multiBreedte * 4, multiHoogte * 4); pen.fillRect(x, y + multiHoogte * 4, multiBreedte * 12, multiHoogte * 4); // bewaar de oude kleur om die later te kunnen herstellen Color oudeKleur = pen.getColor(); // de auto krijgt het opschrift "JavaTwee" if (oudeKleur.equals(Color.white)) pen.setColor(Color.black); else pen.setColor(Color.white); pen.setFont(new Font("SansSerif", 0, multiHoogte)); pen.drawString("JavaTwee", x + multiBreedte * 4, y + multiHoogte * 6); pen.setColor(oudeKleur); // teken de wielen this.tekenWiel(pen, x + multiBreedte, y + multiHoogte * 6, multiBreedte * 4, multiHoogte * 4); this.tekenWiel(pen, x + multiBreedte * 7, y + multiHoogte * 6, multiBreedte * 4, multiHoogte * 4); } private void tekenWiel(Graphics pen, int x, int y, int breedte, int hoogte) { // bewaar de oude kleur om die later te kunnen herstellen Color oudeKleur = pen.getColor(); // buitenste cirkel pen.setColor(Color.black); pen.fillOval(x, y, breedte, hoogte); // binnenste cirkel pen.setColor(Color.white); pen.fillOval(x + breedte / 4, y + hoogte / 4, breedte / 2, hoogte / 2); pen.setColor(oudeKleur); } }