rombo poligono plano metodo graficos ejemplo drawline dibujar cartesiano java java-2d

poligono - Java2D: ¿Siempre es seguro incluir Gráficos en Graphics2D?



plano cartesiano en java 2d (3)

En el libro Filthy Rich Client, de Chet Haase y Romain Guy, dicen que Swing casi siempre usa un objeto Graphics2D . Las excepciones a esto son la impresión y el objeto DebugGraphics de Swing. Por lo tanto, mientras ninguna de estas situaciones se aplique a su código, es seguro realizar un envío a Graphics2D .
Ambos autores trabajaron en Sun, así que supongo que saben de lo que están hablando.

Suponiendo que siempre usemos una Sun JVM (digamos, 1.5+), ¿siempre es seguro lanzar una referencia de gráficos a Graphics2D?

No he visto que cause ningún problema todavía y, a mi entender, la clase Graphics es un código heredado, pero los diseñadores de Java no quisieron cambiar las interfaces para las clases Swing y AWT con el fin de preservar la compatibilidad con versiones anteriores.


El 2D Graphics Trail dice:

Para emplear funciones de la API Java 2D en la aplicación, transfiera el objeto Graphics pasado al método de representación de un componente a un objeto Graphics2D. Por ejemplo:

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

Esta es la fuente más "oficial" que pude encontrar. Viniendo directamente de los Tutoriales de Java de Sun, diría que esta es la forma oficialmente aprobada de hacerlo. Aunque no me hubiera importado exactamente si los JavaDocs deletreaban esto, ...


De acuerdo con la discusión aquí , siempre es seguro lanzar de Graphics a Graphics2D . Sin embargo, no puedo encontrar rápidamente la declaración oficial de Sun sobre esto.

La razón por la cual es válido para enviar desde Graphics a Graphics2D, es porque Sun ha dicho que todos los objetos Graphics devueltos por la API en Java 1.2 o superior serán una subclase de Graphics2D.

Otra pista aquí con la misma conclusión.

Los objetos gráficos siempre se pueden convertir Graphics2D g2d = (Graphics2D) g;