2012-03-27 23 views
0

私は8つのパイを同サイズの楕円形にしたjavaでパイメニューを描きたいと思います。 問題は、楕円形の次の弧の中に1つの弧を描き、前の弧を重ねてその色を変えたときです。どのように私はこれを達成することができますか教えてください?ここに私のコードです。楕円の中に複数の塗りつぶした円弧を描く

public class mypanel extends JPanel { 

    int mx = 20; 
    int my = 20; 
    int ms = 120; 
    int mg = 120; 

    public void paintComponent(Graphics g) { 
     super.paintComponent(g); 
     Graphics2D g2 = (Graphics2D) g; 
     g2.setColor(Color.red); 
     g2.drawOval(mx, my, 100, 100); 
     g2.fillArc(mx, my, 100, 100, 0, 45); 
     g2.setColor(Color.blue); 
     g2.fillArc(mx, my, 100, 100, 0, 60); 
     g2.setColor(Color.white); 
     g2.fillArc(mx, my, 100, 100, 0, 20); 
     g2.setColor(Color.black); 
     g2.fillArc(mx, my, 100, 100, 0, 80); 
     g2.setColor(Color.blue); 
     g2.fillArc(mx, my, 100, 100, 0, 95); 

    } 
} 
+1

を? – trashgod

+0

@trashgodはイベントを定義することができます。例えば、私は赤い色のパイをクリックしたときに長方形を描きたいのですか? – james

答えて

4

これはトリックを行う必要があります:[:はJFreeChartタグ]を使用しないのはなぜ

Color[] c = {Color.BLACK, Color.RED, Color.BLUE, Color.YELLOW, 
       Color.GREEN, Color.CYAN, Color.MAGENTA, Color.PINK}; 
    for(int i=0; i<8; ++i){ 
     g.setColor(c[i]); 
     g.fillArc(x, y, w, h, i*45, 45); 
    } 
+0

おかげで友人.. :) – james

+0

+1よく因数分解! – trashgod

関連する問題