MyCanvas() {shape =2;}
这就是你的构造函数?

解决方案 »

  1.   

    程序这样改一下public class AppletTest extends Applet
    {
    public void init()
    { } public void paint(Graphics g)
    {
    MyCanvas c=new MyCanvas();
    add(c);
    c.setShape(1);
    c.paint(g);
    }}老弟啊,你的MyCanvas要加到applet的panel上啊。另外,最好不要awt与swing 混用。
      

  2.   

    to:jxspace(彼黍离离)你帮我运行一下看看吧,行的话分全给你.我用你的方法还是报错!
    另外我不知道  JApplet 和Applet有什么区别.
      

  3.   

    还报错?是编译时错误?还是运行时错误?错误信息?我把整个代码贴出来吧,在我这边运行没有问题:
    import java.applet.*;
    import java.awt.Graphics;
    import javax.swing.JPanel;public class AppletTest extends Applet
    {
    MyCanvas c;
    public void init()
    {
    c=new MyCanvas();
    add(c);
    } public void paint(Graphics g)
    {

    c.setShape(1);
    c.paint(g);
    }
    }class MyCanvas extends JPanel
    {    int shape;    public MyCanvas()
        {
            shape = 2;
        }    public void setShape(int i)
        {
            shape = i;
        }    public void paint(Graphics g)
        {
            if(shape == 1)
            {
                g.drawLine(20, 20, 30, 30);
                g.drawLine(10, 40, 30, 30);
                g.drawLine(20, 20, 10, 40);
            } else
            if(shape == 2)
            {
                g.drawRect(10, 10, 30, 40);
            }
        }
    }