你能否建议一种通过调试器识别渲染错误来源的方法?
Misko Hevery 将错误分类为三类:
- 逻辑错误
- 连线错误
- 渲染错误
我清楚我的问题是一个渲染错误。
我有一个包含多个图层的Panel Swing应用程序。渲染所有图层可能需要相当长的时间,因此该应用程序使用一个线程池将图层和图层的图块渲染到BufferedImages中。当事件分派线程开始渲染面板时,最近渲染的BufferedImages被绘制到屏幕上。
这个设置已经表现得足够好了。
一个新的特性需要某种类型的图层支持透明度。但某处似乎没有保留透明度。错误可能出现在多个地方,可能在要渲染的对象的实现中出现错误,也可能在离线渲染线程实现中出现错误。在EDT渲染代码中,许多BufferedImages可能没有正确地组合在一起。
我不要求任何人查看代码并告诉我错误出现的位置。
我想知道人们在解决Graphics2D渲染问题时发现的特别有效的技术是什么。我非常支持单元测试,但我更喜欢从其他技术开始。
有没有一种方法或诀窍可以从调试器中直观地检查BufferedImage或Graphics2D对象?
在Netbeans变量和监视窗口中,Netbeans有时使用PropertyEditors显示变量值。在这个示例图像中,foregroundColor和backgroundColor的值显示为Color值的小色块。
是否有一种简单的方法来添加/启用Netbeans PropertyEditor,以显示BufferedImage的内容?
我可以临时将代码与各种遇到的BufferedImages方法调用混合在一起,将它们写入磁盘,以便可以离线检查它们。这可能有效,但很麻烦,因为需要将磁盘上的文件与源代码匹配。
你会怎么做?
BufferedImage
指定什么类型? - MadProgrammerDebugGraphics
,例如:这里。 - MadProgrammerBufferedImage mBufferedImage = new BufferedImage((int) d.getWidth(), (int) d.getHeight(), BufferedImage.TYPE_INT_ARGB);
。 - Ryan