有一段程序是这样写的:
Grapics2D screen2D=(Graphics2D)screen;//构造Graphics2D对象
就是这个Grapics2D,在书上找了半天也没有找到一个Grapics2D的类什么的,而且这种构造类的对象也没有在书上看到过,不是都用new来构造一个对象吗?

解决方案 »

  1.   

    绘图方法中时常会出现你说的这种例子,如下:
    public void paint(Graphics g){}
    public void paintAll(Graphics g){}
    public void paintBorder(Graphics g){}
    public void paintChildren(Graphics g){}
    public void paintComponent(Graphics g){}
    public void paintComponents(Graphics g){}
    你先要搞懂screen是哪个类的变量(最有可能的是Graphics类如上面的g),(Graphics2D)screen;可以将screen强制转换成Graphics2D类,Graphics2D比Graphics类有更好的绘图能力。
    如:
    import java.awt.*;
    import javax.swing.*;public class Test extends JPanel {
      JFrame f = null;  public Test() {
        f = new JFrame("绘图");
        f.getContentPane().add(this);
        f.setSize(200, 200);
        f.setVisible(true);
      }
      
      public void paint(Graphics g){
        Graphics2D g2d = (Graphics2D)g;
        g2d.setColor(Color.RED);
        g2d.drawOval(10, 10, 120, 120); //我这里用的还是Graphics类的方法,你可以参考Graphics2D的API
      }  public static void main(String[] args) {
        new Test();
      }
    }
      

  2.   

    Graphics2D在AWT里有啊,它是继承Graphics的
    Graphics2D和Graphics区别在于:Graphics只能画简单图形
      

  3.   

    Graphics2D,你可以把它看作一个画笔
    比如
    class c extends Canvas
    {
          public void paint(Graphics g)
          Graphics2D g2d=(Graphics2D)g;
    }
    这个就可以把Graphics2D看作可以在画布Canvas上画东西的画笔
    建议你去看JAVA图形设计的书,里面介绍的很详细