2017-05-25 8 views
1

ダブルバッファリングを使用すると、ペイントされたイメージは白い背景で展開されます。 問題がここにありますか?javaダブルバッファリングを使用すると、ペイントされたイメージが展開されます

だけであなたのコードを交換しないのはなぜ
enter code here 
private Image image_buffer; 
private Graphics graphics_buffer 

public void paint(Graphics g) { 
    super.paint(g); 
    buffering(img1, x1, 40, g); 
} 

public void buffering(Image img, int x, int y, Graphics g){ 
    image_buffer = createImage(100,100); 
    graphics_buffer = image_buffer.getGraphics(); 
    buffer.drawImage(img, x, y, this); 
    g.drawImage(image_buffer, x, y, this); 
} 
+1

すべての変数とメソッドに単語「バッファ」が必要ですか? –

+0

buffer、image_buffer、image_buffer、bufferedImageなど。変数名はあまり変わらないものに変更してください。 –

+0

申し訳ありませんが、適切な変数はありません。私はそれを – dongwun

答えて

2

: -

public void paint(Graphics g) { 
    super.paint(g); 
    g.drawImage(img1, x1, 40, this); 
} 

あなたは100x100の「キャンバス」を作成し、その上で描画しているので、白い背景がある持っている理由は。

+0

に固定しました。画像が右側に移動すると画像がちらつくためです。だから私はダブルバッファリングを使用した – dongwun

+0

あなたは、BufferStrategyを使用する必要があります、はるかに簡単です。 https://docs.oracle.com/javase/7/docs/api/java/awt/image/BufferStrategy.html –

+0

お試しいただきありがとうございます – dongwun

関連する問題