2017-02-12 3 views
-2

私はJava Graphicsを使用していますが、変数として「FilledOval」を使用する方法や、何らかの方法で初期化する方法を理解することはできません。以前はobjectDrawを使用していたので、私はこのルートを試してきましたが、どこにも見つけられませんでした。私がこれをやりたいのは、メソッド外の楕円にアクセスできるようにしたいからです。fillOvalを変数Java Graphicsとして使用するにはどうすればよいですか?

public void init() 
{ 
    int height = getSize().height; 
    int width = getSize().width; 
    display = createImage(width,height); 
    drawingArea = display.getGraphics(); 
    createMan(width/3,0,200,drawingArea); 
    paint(drawingArea); 
} 
public void paint(Graphics g) 
{ 
    g.drawImage(display,0,0,null); 
} 
public void createMan(int x, int y, int size, Graphics g) 
{ 
    g.setColor(Color.black); 
    g.fillOval(x,y,size,size); //Head 
} 
+0

作成したコードを表示します。このコードは、お客様の問題をよりよく理解するのに役立ちます。 – markspace

+0

質問に画像を追加しただけで、別の方法で楕円形を使用したり、何らかの形でアクセスしたりできます。 –

+0

コードをテキストとして投稿し、コードとして適切に書式設定します。画像へのリンクではありません。イメージからテキストをコピー&ペーストすることはできません。 –

答えて

0

私はこれを刺すつもりです。私はあなたが望むのは、あなたのグラフィックスオブジェクトの概念、つまり楕円そのものではないということです。楕円形は、Manがどのように描画されるかの実装の詳細です。

非常に注意してください。スイングはスレッドセーフではありません。 EDT以外のSwingオブジェクトに描画コマンドを発行しないでください。 https://docs.oracle.com/javase/tutorial/uiswing/concurrency/index.html

public class Man { 
    private int x, y; 
    private static final WIDTH = 10, HEIGHT = 11; 
    public draw(Graphics g) { 
    g.setColor(Color.black); 
    g.fillOval(x,y,WIDTH,HEIGHT); //Head 
    } 
    // add setters and getters 
} 
+0

クラスのゲッタとセッタをどのくらい正確に作成するのですか?それは私が持っている問題です、私はFilledOvalとして頭自体を返すか、またはそれを変更するメソッドを作成する方法を理解できません。 –

+0

まあ、私は、私が言っていることではないでしょう。なぜ楕円形が欲しいのですか?あなたはそれをどうしますか?私はあなたがX(楕円形を得る)をしたいと言っているX-Y問題があると思うが、本当に問題は他のものである。 – markspace

関連する問題