2013-10-13 23 views
7

Qual è la differenza tra Grafica e Grafica2D?
Se Graphics2D è un'estensione della grafica?Differenza tra Grafica e Grafica2D?

public void paintComponent(Graphics g) 
{ 
    super.paintComponent(g); 
    g.drawRect(25, 25, 20, 20); //use Graphics to paint rectangle 
    Graphics2D g2 =(Graphics2D)g; 
    g2.drawRect(0, 0, 20, 20); // use Graphics2D to paint rectangle 
} 
+0

È praticamente la classe Graphics con i metodi della classe AffineTransform. –

risposta

13

La grafica stessa è un abstract class, pertanto non è possibile creare la sua istanza. Definisce solo alcune interfacce e alcune funzionalità, quindi può essere esteso da un'altra classe.

Quindi anche questo Graphics g, che viene utilizzato come parametro in paintComponent, non è solo Graphics. La libreria java standard ha solo due classi estese: DebugGraphics, Graphics2D, quindi lo Graphics g che si sta utilizzando è l'istanza Graphics2D memorizzata in Graphics g.

In caso contrario, la riga Graphics2D g2 =(Graphics2D)g; termina con un errore.