1

Windows 8 で、Java アプリケーションでグラフィックスの更新をデバッグしています。

Mac ユーザーには、更新された画面領域をリアルタイムでフラッシュするQuartz Debugがあります。これにより、再描画の頻度と誤った更新を決定できます。再描画が必要なのは小さな領域だけですが、ウィンドウ全体が再描画されることがあります。アプリケーションは、コンテンツが変更されていない更新を受け取る領域も表示します。

再描画された領域を検出できる同様の Windows デバッグ ツールはありますか?

4

1 に答える 1

1

その間、BSD ライセンスの SwingLabs サブプロジェクトである JXLayerを見つけました。プロジェクト ライブラリに含め jxlayer-3.0.4.jarた後、再描画をアニメーション化することができました。JFrame と JPanel がある場合は、次を使用します。

JFrame frame = ...;
JPanel panel = ...;
if (DEBUG_REPAINT) {
    JXLayer<JPanel> layer = new JXLayer<>(panel);
    DebugRepaintingUI dp = new DebugRepaintingUI(50); // 50ms delay
    layer.setUI(dp);
    frame.setContentPane(layer);
}
else {
    frame.setContentPane(panel);
}                   }

デフォルトではDebugRepaintingUI、XORMode で変更された領域が描画されますが、ソースを調整して目立たない効果を作成できます。

このアプローチには、実際にアプリケーションを変更するという問題があります。多分誰かがより良い考えを持っています。

于 2013-06-21T14:38:17.637 に答える