当前位置:  开发笔记 > 编程语言 > 正文

Java2D:将Graphics转换为Graphics2D总是安全的

如何解决《Java2D:将Graphics转换为Graphics2D总是安全的》经验,为你挑选了3个好方法。

假设我们总是使用Sun JVM(比如1.5+),那么将Graphics引用转换为Graphics2D总是安全的吗?

我还没有看到它导致任何问题,据我所知,Graphics类是遗留代码,但Java设计者不希望更改Swing和AWT类的接口以保持向后兼容性.



1> Jorge Ferrei..:

根据讨论这里,它始终是安全的,从投GraphicsGraphics2D.但是,我无法快速找到关于此的官方Sun声明.

从Graphics转换为Graphics2D是有效的原因是因为Sun已经说过Java 1.2或更高版本中API返回的所有Graphics对象都是Graphics2D的子类.

这里的另一个暗示有相同的结论.

Graphics Object总是可以转换为Graphics2D g2d =(Graphics2D)g;



2> Roland Schne..:

在Chet Haase和Romain Guy 的书Filthy Rich Client中,他们说Swing几乎总是使用一个Graphics2D对象.例外情况是打印和Swing的DebugGraphics对象.因此,只要这些情况都不适用于您的代码,就可以安全地进行转换Graphics2D.
两位作者都在Sun工作,所以我认为他们知道他们在谈论什么.



3> 小智..:

在2D图形小道说:

要在应用程序中使用Java 2D API功能,请将传递到组件的呈现方法中的Graphics对象转换为Graphics2D对象.例如:

public void paint (Graphics g) {
    Graphics2D g2 = (Graphics2D) g;
    ...
}

这是我能找到的最"官方"的来源.直接来自Sun的Java教程,我会说这是官方认可的方式.如果JavaDocs拼写出来,我不会完全明白,不过......

推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有