我正在尝试创建一个如下所示的对象- http://www.cs.uwlax.edu/~riley/CS120S13/Assignments/Assignment11.pdf
页面顶部的face是我想要的结果。
我所做的是,我得到了一个名为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);
}
}这篇文章基本上是在问如何在相同的方法中使用不同颜色的椭圆形。
发布于 2013-04-26 11:14:32
如果你需要保存和恢复一种颜色,你可以这样做:
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);
}https://stackoverflow.com/questions/16228061
复制相似问题