It is easy to adapt an existing program,
such as the meter program shown in Segment 748, to
work with the Graphics2D
class, instead of with the Graphics
class. Because the Graphics2D
class is a subclass of the
Graphics
class, all the methods in the Graphics
class still
work. All you need to do is to cast the Graphics
instance supplied as the
paint
method's argument into an instance of the Graphics2D
class, and then to work with that instance of the Graphics2D
class.
import java.awt.*; import javax.swing.*; public class Meter extends JComponent implements MeterInterface { String title = "Title to Be Supplied"; int minValue, maxValue, value; public Meter (int x, int y) { minValue = x; maxValue = y; value = (y + x) / 2; } public void setValue(int v) {value = v; repaint();} public void setTitle(String t) {title = t; repaint();} public void paint(Graphics x) { Graphics2D g = (Graphics2D) x; // Rest of paint as in Segment 748 } public Dimension getMinimumSize() {return new Dimension(150, 100);} public Dimension getPreferredSize() {return new Dimension(150, 100);} }
Note that there is no getValueAtCoordinates
method, as defined in
Segment 748, as that method is not relevent to the
explanation of the methods of the Graphics2D
clas.