java - 如何检测 Java 应用程序(Windows 操作系统)中的重绘区域?

标签 java windows java-2d

我正在 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/

相关文章:

java - 可以直接从 3D 数组列表中删除 1D 数组列表吗?

java - 如何同时将所有 Eclipse 项目设置为同一个 JVM?

java - 如何使用 Spark 结构化流为 Kafka 流实现自定义反序列化器?

windows - 使用 Go 在 Windows 资源管理器中显示文件?

java - 在 Java2D 中使用 ColorConvertOp 时,有没有办法设置默认颜色透明度?

java - 将 logback-access 与 Google App Engine (GAE) 结合使用

带有&符号的Python子进程问题

c++ - 如何在 WTL 中删除指向无模式对话框的指针

java - Swing 中 AA 和插值的全局渲染提示

java - GUI 中的可调圆