我想画一条线
 
public   void   paint(Graphics   g){   
    super.paint(g);   
    g.drawLine(20, 20, 20, 30);  对这代码不是很理解Graphics这个类是抽象的吗?
怎么不能直接
 Graphics新建一个对象 
 再用对象调用drawLine()方法;

解决方案 »

  1.   

    Graphics是抽象类 
    super.paint(g); 调用父类的paint()方法,做一些初始化的工作。如刷新屏幕、重绘图像等等
      

  2.   

    public void paint(Graphics g)这个为什么要这样命名
      

  3.   


    //查API//Graphics 继承 Object 的一个抽象类
    public abstract class Graphics extends Object//super.paint(Graphics g)方法来自 JPanel 继承的 JComponent ,JPanel 是一般轻量级容器
    //paint()方法来自java.awt.Container,即容器
    public class JPanel extends JComponent implements Accessible
    你的写法是将 图形对象(g) 写入 容器(JPanel) ,这样才能被显示出来