2017-03-05 9 views
-1

黒色の目的は図面です。JPanelでの描画領域の制限とグラフィックス状態の保存

  • どのようにして線で形成された円の半径に図面を制限できますか?

  • グラフィックスオブジェクトの状態を保存して、描画を追加したり、元に戻す機能を追加する方法はありますか?あなたの最初の質問については

enter image description here

public void paintComponent(Graphics g) 
{ 
    super.paintComponent(g); 

    sectors = 12; 

    Graphics2D g2d = (Graphics2D) g;  
    g2d.setColor(Color.RED); 

    sector = new Line2D.Double(getWidth()/2, 0, getWidth()/2, getHeight()); 
    //g2d.setClip(new Ellipse2D.Double(getWidth()/2,getHeight()/2, radius, radius)); 


    //draws the sectors on the screen 
    for(int i=0; i<sectors; i++) 
    { 
     g2d.draw(sector); 
     g2d.rotate(Math.toRadians(30),getWidth()/2,getHeight()/2); 
    } 

    //draws the doily 
    if(dragging) 
    { 
     for(int i=0; i<sectors; i++) 
     { 
      g2d.fillOval((int) draw.getX(), (int) draw.getY(),20, 20); 
      g2d.rotate(Math.toRadians(30), getWidth()/2, getHeight()/2); 
     } 

     //saves the current drawing in a stack 
     graphics.push(g2d); 
    } 
} 
+0

黒のコードを追加できますか?JPanel – Kennedy

+0

黒の色を設定してサイズを指定するだけです。それ以外のものはすべてpaintComponent() –

+0

にあります。1)すぐに役立つようにするには、[MCVE]または[短く、自己完結型の正しい例](http://www.sscce.org/)を投稿してください。 2)* "線で形成された円の半径に描画を制限するにはどうすればよいですか?" * ['Graphics.setClip(Shape)'](http://docs.oracle.com/javase/8/docs/ api/java/awt/Graphics.html#setClip-java.awt.Shape-)3)* "方法はありますか?" *うわー!これはQ&Aサイトであり、ヘルプデスクではありません。それぞれの特定の質問は自己完結型で、それ自身の質問スレッドでなければなりません。この投稿を編集して2番目の質問を削除するか、「あまりにも広すぎる」として閉鎖される危険性があります。 –

答えて

関連する問題