你的整个init函数就没有被调用,怎么可能显示出来.
找本书看些例子就知道了

解决方案 »

  1.   

    如楼上所说,你的init方法没有调用,
    而且你的Graphics是在什么上面画图,
    也没有定义。
    给你一个简单的例子:拖动鼠标可以划线
    import javax.swing.*;
    import java.awt.*;
    import java.awt.geom.Ellipse2D;
    import java.awt.event.MouseListener;
    import java.awt.event.MouseEvent;
    import java.awt.geom.Line2D;
    import java.awt.Graphics2D;public class Drawing extends JPanel{
      private Paint paint;
      private Point start,end;
      protected Graphics2D g2;
      public Drawing() {
        paint = Color.red;
        this.addMouseListener(new MouseClickListener());
      }
      public void paintComponent(Graphics g)
       {
           super.paintComponent(g);
           g2 = (Graphics2D)g;
           g2.setPaint(paint);    }    public static void main(String[] args) {
          JFrame frame = new JFrame("Test");
          Drawing draw = new Drawing();
          draw.setLayout(new BorderLayout());
          frame.getContentPane().add(draw,BorderLayout.CENTER);
          frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          frame.setSize(800,600);
          frame.show();
        }
        class MouseClickListener implements MouseListener
        {
        public void mouseClicked(MouseEvent e) {
        }    public void mouseEntered(MouseEvent e) {
        }    public void mouseExited(MouseEvent e) {
        }    public void mousePressed(MouseEvent e) {
          start = e.getPoint();
        }    public void mouseReleased(MouseEvent e) {
          end = e.getPoint();
          g2 = (Graphics2D) Drawing.this.getGraphics();
          g2.drawLine(start.x,start.y,end.x,end.y);
        }  }}