2016-04-12 7 views
0

Ich habe eine Aufgabe, wo ich etwas zeichnen muss, aber dafür muss ich Methoden anwenden. Wie würde ich das in JApplet tun? Hier ist mein Code Ich versuche, mich Methoden zuzuwenden, die ich versuche, drei Gesichter mit den Händen zu zeichnen, die Ohren, Augen und Mund bedecken.Wie man Methoden verwendet, um in Java zu zeichnen?

import javax.swing.JApplet; 
import java.awt.Graphics; 

public class HappyFace extends JApplet { 
int xOffSetOfFace = 100; 
int xOffSetOfEyes = 150; 
int xPos = 300; 
int yPosOfFace = 300; 
int yPosOfEye = 350; 
int heightOfEyes = 25; 
int widthOfEyes = 25; 
int height = 200; 
int width = 200; 
int xOffSetOfMouth = 160; 
int yOffSetOfMouth = 420; 
int widthOfMouth = 110; 
int heightOfMouth = 50; 
int startArcOfMouth = 180; 
int endArcOfMouth = 180; 
int xOffSetOfEar = 80; 
int yPosOfEar = 278; 
int heightOfEar = 68; 
int widthOfEar = 50; 
int dxHandHear = 175; 
int dyHandHear = 175; 
int arcWidth = 12; 
int arcHeight = 42; 
int arcStart = 90; 
int arcEndOne = 150; 
int arcEndTwo = -120; 

public void paint(Graphics canvas) { 
    super.paint(canvas); 
    for (int i = 0; i < 3; i++) { 
    canvas.drawOval((xOffSetOfFace) + (xPos * i), yPosOfFace, width, height); //draws Face 
    canvas.fillOval((xOffSetOfEyes) + (xPos * i), yPosOfEye, widthOfEyes, heightOfEyes); //draws eye1 
    canvas.fillOval((xOffSetOfEyes) + (xPos * i) + 90, yPosOfEye, widthOfEyes, heightOfEyes); //draws eye2 
    canvas.drawArc((xOffSetOfMouth) + (xPos * i), yOffSetOfMouth, widthOfMouth, heightOfMouth, startArcOfMouth, 
    endArcOfMouth); //draws mouth 
    canvas.drawOval((xOffSetOfEar) + (xPos * i), yPosOfEar, widthOfEar, heightOfEar); //draws leftmost ears 
    canvas.drawOval((xOffSetOfEar) + (xPos * i) + 190, yPosOfEar, widthOfEar, heightOfEar); //draws right most ears 

    } 


    canvas.fillOval(85, 350, 45, 25); //draws palm 
    canvas.fillArc(87, 335, arcWidth, arcHeight, arcStart, arcEndOne); //draws finger1 
    canvas.fillArc(87, 335, 12, 42, 90, -120); //draws finger1 
    canvas.fillArc(105, 330, 12, 42, 90, 150); //draws finger2 
    canvas.fillArc(105, 330, 12, 42, 90, -120); //draws finger2 
    canvas.fillArc(117, 335, 12, 42, 90, 150); //draws finger3 
    canvas.fillArc(117, 335, 12, 42, 90, -120); //draws finger3 
    //sep 
    canvas.fillOval(85 + dxHandHear, 350, 45, 25); //draws palm 
    canvas.fillArc(87 + dxHandHear, 335, 12, 42, 90, 150); //draws finger1 
    canvas.fillArc(87 + dxHandHear, 335, 12, 42, 90, -120); //draws finger1 
    canvas.fillArc(105 + dxHandHear, 330, 12, 42, 90, 150); //draws finger2 
    canvas.fillArc(105 + dxHandHear, 330, 12, 42, 90, -120); //draws finger2 
    canvas.fillArc(117 + dxHandHear, 335, 12, 42, 90, 150); //draws finger3 
    canvas.fillArc(117 + dxHandHear, 335, 12, 42, 90, -120); //draws finger3 

    canvas.fillOval((85 + dxHandHear) * 2, 350, 45, 25); //draws palm 
    canvas.fillArc((87 + dxHandHear) * 2, 335, 12, 42, 90, 150); //draws finger1 
    canvas.fillArc((87 + dxHandHear) * 2, 335, 12, 42, 90, -120); //draws finger1 
    canvas.fillArc((95 + dxHandHear) * 2, 330, 12, 42, 90, 150); //draws finger2 
    canvas.fillArc((95 + dxHandHear) * 2, 330, 12, 42, 90, -120); //draws finger2 
    canvas.fillArc((102 + dxHandHear) * 2, 335, 12, 42, 90, 150); //draws finger3 
    canvas.fillArc((102 + dxHandHear) * 2, 335, 12, 42, 90, -120); //draws finger3 

    canvas.fillOval(((85 + dxHandHear) * 2) - 90, 350, 45, 25); //draws palm 
    canvas.fillArc(((87 + dxHandHear) * 2) - 90, 335, 12, 42, 90, 150); //draws finger1 
    canvas.fillArc(((87 + dxHandHear) * 2) - 90, 335, 12, 42, 90, -120); //draws finger1 
    canvas.fillArc(((95 + dxHandHear) * 2) - 90, 330, 12, 42, 90, 150); //draws finger2 
    canvas.fillArc(((95 + dxHandHear) * 2) - 90, 330, 12, 42, 90, -120); //draws finger2 
    canvas.fillArc(((102 + dxHandHear) * 2) - 90, 335, 12, 42, 90, 150); //draws finger3 
    canvas.fillArc(((102 + dxHandHear) * 2) - 90, 335, 12, 42, 90, -120); //draws finger3 

    canvas.fillOval(((85 + dxHandHear) * 3) - 25, 350 + 110, 45, 25); //draws palm 
    canvas.fillArc(((87 + dxHandHear) * 3) - 30, 335 + 110, 12, 42, 90, 150); //draws finger1 
    canvas.fillArc(((87 + dxHandHear) * 3) - 30, 335 + 110, 12, 42, 90, -120); //draws finger1 
    canvas.fillArc(((95 + dxHandHear) * 3) - 35, 330 + 110, 12, 42, 90, 150); //draws finger2 
    canvas.fillArc(((95 + dxHandHear) * 3) - 35, 330 + 110, 12, 42, 90, -120); //draws finger2 
    canvas.fillArc(((102 + dxHandHear) * 3) - 45, 335 + 110, 12, 42, 90, 150); //draws finger3 
    canvas.fillArc(((102 + dxHandHear) * 3) - 45, 335 + 110, 12, 42, 90, -120); //draws finger3 

    canvas.fillOval(((85 + dxHandHear) * 3) + 30, 350 + 110, 45, 25); //draws palm 
    canvas.fillArc(((87 + dxHandHear) * 3) + 25, 335 + 110, 12, 42, 90, 150); //draws finger1 
    canvas.fillArc(((87 + dxHandHear) * 3) + 25, 335 + 110, 12, 42, 90, -120); //draws finger1 
    canvas.fillArc(((95 + dxHandHear) * 3) + 20, 330 + 110, 12, 42, 90, 150); //draws finger2 
    canvas.fillArc(((95 + dxHandHear) * 3) + 20, 330 + 110, 12, 42, 90, -120); //draws finger2 
    canvas.fillArc(((102 + dxHandHear) * 3) + 10, 335 + 110, 12, 42, 90, 150); //draws finger3 
    canvas.fillArc(((102 + dxHandHear) * 3) + 10, 335 + 110, 12, 42, 90, -120); //draws finger3 

} 
} 
+0

Ich möchte nicht, dass Sie Aufgabe für Sie tun, so Hier ist ein Hinweis: Denken Sie daran, eine Methode aufgerufen zu haben, zum Beispiel 'drawFinger (...)', die Parameter annimmt, um einen generischen Finger zu zeichnen, und dann diesen Aufruf aufruft, um bestimmte Finger zu zeichnen. – jr593

Antwort

0

eine Methode erstellen, die eine Hand zieht und nimmt in einem Array von int-Werten die Hände

Oder erstellen Sie eine Klasse zu ziehen, die für die Hand dh

int[] finger1 = [87+dxHandHear, 335, 12, 42, 90, 150]; 

alle Informationen hält Dann in der Methode, die die Hand zeichnet, erhält es eine Hand übergeben.

private void drawHand(Hand h) { 
    canvas.fillArc(h.getFinger1()[0], h.getFinger1()[1], h.getFinger1()[2], h.getFinger1()[3], h.getFinger1()[4], h.getFinger1()[5]); //draws finger1 
    ..... 
} 
Verwandte Themen