UI用のSwingを使用して、Javaでマッピングアプリケーションを作成しています(この記事の最後にプロトタイプの図が含まれています)。マップは、JPanelを拡張するカスタムMapPanelクラスを使用して実装されます。マップは、そのpaintMap()メソッドが呼び出されるたびにMapPanelにペイントされる一連の300x300イメージ(タイル)としてサーバーからフェッチされます。コードの長さと複雑さ(複数のクラス、など)に、私はここにそれのすべてを含めることはできませんが、paintMap()メソッドは、基本的に次のように動作します。カスタムペイントを使用したSwingのレイヤードパネル
// Loop for each map tile (image, xPos, yPos)
getGraphics().drawImage(image, xPos, yPos, 300, 300, null);
私は別のJPanelを持っていると思います(ズームコントロール用のJSliderを含む)がマップパネルの上にオーバーレイされていますが、これを動作させるのが難しいです。マップをペイントすると、オーバーレイされたJPanelが消えます。 paintMap()メソッドでオーバーレイされたJPanelを再描画すると、マップがドラッグされている(したがって、連続的に再描画された)ときにちらつきが激しくなります。
どのようにちらつきなく私のUIを実装することができますか?
drawImage()をpaintComponentメソッドに呼び出すと、問題が解決したようです - ありがとう! – Jonathan