我正在 Windows 8 下的 Java 应用程序中调试图形更新。
Mac 用户有 Quartz Debug实时更新屏幕区域。这允许确定重绘频率和错误更新 - 有时只有一小部分区域需要重绘,但整个窗口都会被重绘。该应用程序甚至会显示接收更新且内容未更改的区域。
是否有类似的 Windows 调试工具可以让我检测重绘区域?
最佳答案
同时我发现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 中绘制更改的区域,但我可以调整源代码以创建不那么突兀的效果。
这种方法存在一个问题,即它实际上修改了应用程序。也许有人有更好的主意。
关于java - 如何检测 Java 应用程序(Windows 操作系统)中的重绘区域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17230383/