0

私はこのようなオブジェクトを作成しようとしています - http://www.cs.uwlax.edu/~riley/CS120S13/Assignments/Assignment11.pdf

ページの上部にある顔は、私の望ましい結果です。

私がしたことは、顔のボディを描画する BouncyFace というクラスを与えられたことです。私の仕事は、BouncyFace から paint メソッドを継承し、顔に目と口を追加するように変更することです。私は目を追加しましたが、口は別の楕円形の上にある楕円形であり、すべての楕円形の色を変更するため、ペイント メソッドで 1 つの楕円形の色を単純に変更できないため、少し注意が必要です。考え?

コードが必要な方へ: 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);
    }
}

この投稿は基本的に、ペイント メソッドで同じメソッドで異なる色の楕円を使用する方法を尋ねています。

4

1 に答える 1

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);
}
于 2013-04-26T03:14:31.897 に答える