2013-06-21 67 views
1

我正在Windows 8下的Java應用程序中調試圖形更新。如何檢測Java應用程序(Windows操作系統)中的重繪區域?

Mac用戶有Quartz Debug實時更新屏幕區域。這可以確定重新繪製頻率和錯誤更新 - 有時只有很小的區域需要重新繪製,但整個窗口都會重新繪製。該應用程序甚至顯示接收更新的區域沒有未改變的內容。

是否有一個類似的Windows調試工具,允許我檢測重繪區域?

回答

1

同時,我發現JXLayer,一個SwingLabs子項目與BSD許可證。在將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,但我能適應源來創建不突兀的效果。

這種方法存在的問題是它實際上修改了應用程序。也許有人有一個更好的主意。

相關問題