如何在Java应用程序(Windows OS)中检测重新绘制的区域?

如何在Java应用程序(Windows OS)中检测重新绘制的区域?,java,windows,java-2d,Java,Windows,Java 2d,我正在Windows8下调试Java应用程序中的图形更新 Mac用户可以通过flash实时更新屏幕区域。这允许确定重新绘制频率和错误更新-有时只有一小部分区域需要重新绘制,但整个窗口需要重新绘制。该应用程序甚至显示了接收到内容未更改的更新的区域 是否有类似的Windows调试工具允许我检测重新绘制的区域?与此同时,我发现了一个具有BSD许可证的SwingLabs子项目。在将jxlayer-3.0.4.jar包含到我的项目库中之后,我能够为重绘设置动画。如果您有JFrame和JPanel,请使用:

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

Mac用户可以通过flash实时更新屏幕区域。这允许确定重新绘制频率和错误更新-有时只有一小部分区域需要重新绘制,但整个窗口需要重新绘制。该应用程序甚至显示了接收到内容未更改的更新的区域

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

与此同时,我发现了一个具有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);
}                   }
JFrame=。。。;
JPanel面板=。。。;
如果(调试\重新绘制){
JXLayer层=新JXLayer(面板);
debugrepaintugi dp=新的debugrepaintugi(50);//50毫秒延迟
层。setUI(dp);
frame.setContentPane(层);
}
否则{
frame.setContentPane(面板);
}                   }
默认情况下,
debugrepaintugi
在XORMode中绘制更改的区域,但我可以调整源代码以创建不太突出的效果

这种方法的问题在于它实际上修改了应用程序。也许有人有更好的主意。

与此同时,我发现了一个具有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);
}                   }
JFrame=。。。;
JPanel面板=。。。;
如果(调试\重新绘制){
JXLayer层=新JXLayer(面板);
debugrepaintugi dp=新的debugrepaintugi(50);//50毫秒延迟
层。setUI(dp);
frame.setContentPane(层);
}
否则{
frame.setContentPane(面板);
}                   }
默认情况下,
debugrepaintugi
在XORMode中绘制更改的区域,但我可以调整源代码以创建不太突出的效果

这种方法的问题在于它实际上修改了应用程序。也许有人有更好的主意