0

私のアプレットは、何かを段階的に描画するだけです。

私のupdate()ブロックは次のようになります:

public void update(Graphics g)
{
  if (!done)
  {
    while (!doneDrawing)
    {
      imageGraphics.drawSomething(...);
      g.drawImage(image);
    }
    done = true;
  }
}

このdone変数は、ループが完了したときに描画プロセス全体を再度実行することを防ぎます。また、この変数を false に設定することで、アプレットに描画をもう一度行わせることができます。

アプレットを Web ページに配置すると、期待どおりに動作しますが、タブ/ウィンドウを切り替えて戻ってくると、(Chrome を使用して) 白い画面しか表示されません。false に設定されているボタンを押すとdone、アプレットは描画を再描画し、タブを切り替えるまではすべてうまく機能します。

であっても、アプレットが常に画面に絵を描くようにしようとしましたが、done == true何も変わらないようでした。

public void update(Graphics g)
{
  if (!done)
  {
    while (!doneDrawing)
    {
      imageGraphics.drawSomething(...);
      g.drawImage(image);
    }
    done = true;
  }
  g.drawImage(image);
}

編集: 上記のコードの 2 番目のチャンクは実際に問題を修正しました。私の Web ブラウザーは、単に更新するのではなく、タブを閉じて再度開くまで、更新されたコードに変更したくありませんでした。しかし、アンドリューの提案に従って、JFrames/JPanels の学習を開始します。

4

0 に答える 0