2013-04-26 90 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