1

我正在 Windows 8 下的 Java 应用程序中调试图形更新。

Mac 用户可以使用Quartz Debug实时刷新更新的屏幕区域。这允许确定重绘频率和错误更新 - 有时只有小区域需要重绘,但整个窗口都会被重绘。该应用程序甚至显示接收更新但内容不变的区域。

是否有类似的 Windows 调试工具允许我检测重绘区域?

4

1 回答 1

1

同时我发现了JXLayer,一个带有 BSD 许可证的 SwingLabs 子项目。包含 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 回答