0

雪だるまを描く教科書の例に従って、プログラムを一から作り直しました。それは走って魚を描きますが、尾とひれの楕円を三角形でくり抜く方法がわかりません。(楕円はすべて黄色です。パックマンのように見えるように、それぞれに緑色の三角形を挿入したい)

//**********************************************************************
// Fish.Java    Louis Colucci
// Draws a fish
//**********************************************************************

import javax.swing.JApplet;

import java.awt.*;

public class Fish extends JApplet
{
    public void paint (Graphics page)
    {

    final int MID = 300;
    final int TOP = 100;


    setBackground (Color.green);

    page.setColor (Color.white);

    //Draws the body
    page.setColor (Color.blue);
    page.fillOval (MID-70, TOP+70, 360, 120);

    // Adds the name Jascha Heifetz to the body
    page.setColor (Color.black);
    page.drawString ("Jascha Heifetz", 365, 240);

    //Draws the fin
    page.setColor (Color.yellow);
    page.fillOval (MID+75, TOP+40, 85, 45);


     //Draws the tail
    page.setColor (Color.yellow);
    page.fillOval (MID+275, TOP+90, 140, 75);

    //Draws the eye
    page.setColor (Color.yellow);
    page.fillOval (MID+0, TOP+100, 12, 12);

    //Draws the mouth
    page.setColor(Color.white);
    page.drawArc (MID-68, TOP+105, 75, 30, 190, 110);
        }
}
4

1 に答える 1

2

あなたの基本的なコードは間違っています。JApplet (JFrame...) のような最上位コンテナの paint() メソッドをオーバーライドしないでください。カスタム ペイントは、JPanel の paintComponent() メソッドをオーバーライドすることによって行われます。詳細と実際の例については、カスタム ペインティングに関する Swing チュートリアルのセクションを参照してください。

次に、さまざまな形状のペイントの例について、 2D グラフィックスのチュートリアルを確認できます。

于 2013-09-25T04:10:12.840 に答える