假设我们总是使用Sun JVM(比如说1.5+),将Graphics引用转换为Graphics2D总是安全的吗?Java2D:将图形投影到Graphics2D中总是安全
我还没有看到它导致任何问题,并据我了解,Graphics类是遗留代码,但Java设计者不想更改Swing和AWT类的接口,以保持向后兼容性。
假设我们总是使用Sun JVM(比如说1.5+),将Graphics引用转换为Graphics2D总是安全的吗?Java2D:将图形投影到Graphics2D中总是安全
我还没有看到它导致任何问题,并据我了解,Graphics类是遗留代码,但Java设计者不想更改Swing和AWT类的接口,以保持向后兼容性。
在Chet Haase和Romain Guy的书Filthy Rich Client中他们说Swing几乎总是使用一个Graphics2D
对象。此例外是打印和Swing的DebugGraphics
对象。所以只要这些情况都不适用于你的代码,就可以安全地投入到Graphics2D
。两位作者都在Sun工作,所以我会假设他们知道他们在说什么。
要使用应用程序的Java 2D API功能,投Graphics对象传递到组件的渲染方法Graphics2D对象。例如:
public void paint (Graphics g) {
Graphics2D g2 = (Graphics2D) g;
...
}
这是最“官方”的来源,我能找到。直接从Sun的Java教程中,我会说这是官方批准的做法。如果JavaDocs拼写出来,我不会完全怀念,但...
感谢您的参考。即使它没有直接引用Sun源代码,我也会接受它,因为我认为它足够接近。 – 2008-10-07 17:07:27