2013-04-26 19 views
0

我試圖創建一個對象,看起來像這 - http://www.cs.uwlax.edu/~riley/CS120S13/Assignments/Assignment11.pdf傳承漆剪裁

頁面是我想要的結果的頂部的正面。

我做的是我被給了一個名爲BouncyFace的類來繪製臉部的主體,我的工作是從BouncyFace繼承paint方法並修改它,以便它將眼睛和嘴巴添加到臉部。我添加了眼睛,但嘴巴有點棘手,因爲它是一個橢圓形的另一個橢圓形,我不能簡單地改變一個橢圓形的顏色,因爲它會改變所有橢圓形的顏色。思考?

對於那些誰想要的代碼:這裏是BouncyFace

的代碼
import javax.swing.*; 
import java.awt.*; 
public class BouncyFace extends JComponent { 
    protected int xDelta = 1; 
    protected int yDelta = 1; 
    protected Color fleshColor; 
    public BouncyFace(int x, int y, int side) { 
     super(); 
     setBounds(x, y, side, side); 
     fleshColor = new Color(214,157,106); 
     setBackground(fleshColor); 
     setForeground(Color.black); 
    } 


    public void paint(Graphics g) { 
     g.setColor(getBackground()); 
     g.fillOval(0, 0, getWidth()-1, getHeight()-1); 
    } 

以及類被繼承BouncyFace代碼:

import javax.swing.*; 
import java.awt.*; 
public class Features extends BouncyFace 
{ 
    public Features(int x,int y, int side) 
    { 
     super(x,y,side); 
    } 


    public void paint(Graphics g) 
    { 
     super.paint(g); 
     g.setColor(Color.black); 
     g.fillOval(10,20,10,10); 
     g.fillOval(40,20,10,10); 
     //super.fillOval(10,10,40,35); 
     g.fillOval(10,10,40,40); 
    } 
} 

這篇文章基本上是問如何使用在塗裝方法中採用相同的方法制作不同顏色的橢圓。

+0

是的,可以。保存當前的顏色。更改。做你的畫。恢復舊的顏色。見http://docs.oracle.com/javase/1.4.2/docs/api/java/awt/Graphics.html#getColor() – 2013-04-26 03:07:27

+0

編輯:好的,所以Esentially我添加一個顏色參數? – Cronaldo97 2013-04-26 03:08:45

+1

'我被授予了一個名爲BouncyFace的類,它可以繪製臉部的主體,我的工作是從BouncyFace繼承繪畫方法並對其進行修改,以便將眼睛和嘴部添加到臉部 - 我會找一個新老師因爲自定義繪畫應該在paintComponent()方法中完成,而不是paint()方法。告訴你的老師,因爲我們厭倦了每天多次重複這個建議,因爲老師不能正確地教授繪畫。 – camickr 2013-04-26 03:58:13

回答

0

如果需要保存和恢復的顏色,你會做這樣的事情:

public void paint(Graphics g) 
{ 
    super.paint(g); 
    Color c = g.getColor(); 
    g.setColor(Color.black); 
    g.fillOval(10,20,10,10); 
    g.setColor(c); 
    g.fillOval(40,20,10,10); 
    //super.fillOval(10,10,40,35); 
    g.fillOval(10,10,40,40); 
} 
+0

但是,這會改變所有橢圓的顏色。我只想要它改變一個橢圓形的顏色。 – Cronaldo97 2013-04-26 03:15:41

+0

我在保存之前將顏色更改爲黑色,並在繪製完一個橢圓形後將其恢復。我認爲這是一開始就有所不同。不是嗎? – 2013-04-26 03:20:19

+0

哦!它的工作原理,我沒有把橢圓形的寫入順序:/。謝謝你明智的先生。 – Cronaldo97 2013-04-26 03:20:31