我正在Windows 8下的Java应用程序中调试图形更新。
Mac用户Quartz Debug可以实时更新屏幕区域。这允许确定重绘频率和错误更新 - 有时只有一小块区域需要重新绘制,但整个窗口重新绘制。该应用程序甚至会显示接收内容不变的更新的区域。
是否有类似的Windows调试工具允许我检测重新绘制的区域?
答案 0 :(得分: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中绘制更改的区域,但我可以调整源以创建不那么突兀的效果。
这种方法存在实际修改应用程序的问题。也许有人有更好的主意。