Yeh, Chet has hit the nail on the head...
Theres basically two reasons for a Graphics2D object to be used.
1. To draw into a component like a JPanel, using the paintComponent(..) method.
This has a Graphics object as parameter that you can use.
2. Create a BufferedImage object, call getGraphics(), then you can draw into the image. This is very useful for making images in
java, which you can then write to some location on hard drive.
I noticed recently that most of the Graphics2D methods are abstract, thats because they are implemented in a special private class called SunGraphics2D, which isn't really accessible for users since it does the speical stuff like drawing squares etc. etc, which is different to say the
String class which uses normal java.