2012-02-11 25 views
2

私はJava初心者です&矢印キーを使って線を引くプログラムを作成しています。次の行は最初の行の最後から始まります。 今作成しましたが、問題は、ウィンドウのサイズを変更するたびに描画が消えてしまうことです。paintFrame内のグラフィックスは、JFrameのサイズ変更後に消えます。

public class draw extends JPanel { 

    int up = 1, down = 0, left = 0, right = 0; 
    int beginX, beginY; 

    @Override 
    public void paintComponent(Graphics g) { 

     if(up == 1){ 
      beginX = getWidth()/2; 
      beginY = getHeight()/2; 
     } 
     if (up > 0) { 
      g.drawLine(beginX, beginY, (beginX), (beginY - up)); 
      beginY -= (up); 
      up = 0; 
     } else if (down > 0) { 
      g.drawLine(beginX, beginY, beginX, (beginY + down)); 
      beginY += down; 
      down = 0; 
     } else if (right > 0) { 
      g.drawLine(beginX, beginY, (beginX + right), beginY); 
      beginX += right; 
      right = 0; 
     } else if (left > 0) { 
      g.drawLine(beginX, beginY, (beginX - left), beginY); 
      beginX -= (left); 
      left = 0; 
     } 

    } 

    public void drawUp() { 
     up += 3; 
     repaint(); 
    } 

    public void drawDown() { 
     down += 3; 
     repaint(); 
    } 

    public void drawLeft() { 
     left += 3; 
     repaint(); 
    } 

    public void drawRight() { 
     right += 3; 
     repaint(); 
    } 
}  

答えて

4

paintComponentだけではなく、あなたが欲しいものを追加するには、コンポーネントの現在のグラフィックスを描画する必要があります

は、ここに私のコードです。したがって、すべての行を覚えてすべてを描画する方法と、行を生成するときに描画するバッファを個別に作成して再描画を要求されたときにそのバッファを使用して描画する方法の2つの方法があります。

+0

バッファに関する情報を教えてください。または参照するリンクを教えてください。 ありがとう – Jaydeep

関連する問題