在applet中最好不用javax.swing.*;包,一般的浏览器都不支持
import java.awt.*;
import java.applet.*;
public class Rectangles extends Applet {
  public void paint(Graphics g) {
    g.drawRect(10, 10, 60, 50);
    g.fillRect(100, 10, 60, 50);
    g.drawRoundRect(190, 10, 60, 50, 15, 15);
    g.fillRoundRect(70, 90, 140, 100, 30, 40);
  }
}

解决方案 »

  1.   

    重载paint()方法,不要重载paintComponent()。另外,drawOval也不是画矩形啊。
    class myPanel extends JPanel
    {
    public void paint(Graphics g)
    {
                    super.paint(g);
    update(g);
    } public void update(Graphics g)
    {
            g.drawRect(100,100,50,50);
        }
    }
      

  2.   

    namowen(寒号不已)兄,还是不行呀,原程序如下,指教指教呀!import javax.swing.*;
    import java.awt.*;
    import javax.swing.border.*;/*
    <applet code="myclspaneltest" width=300 height=300>
    </applet>
    */public class myclspaneltest extends JApplet
    {
    public void init()
    {
    Container mycontainer01=getContentPane();
    TitledBorder mytitleborder01=new TitledBorder("mypanel01 border");
    JButton mybutton01=new JButton("Center");
    JButton mybutton02=new JButton("This North");
    JButton mybutton03=new JButton("This is a test");
    JPanel mypanel01=new JPanel();
    myPanel mypanel02=new myPanel(); mycontainer01.setLayout(new FlowLayout());
    mycontainer01.setSize(new Dimension(250, 200));
    mypanel01.setLayout(new BorderLayout());
    mypanel01.setBorder(mytitleborder01);
    mypanel01.setBorder(BorderFactory.createLineBorder(Color.blue,2));
    mypanel02.setBorder(BorderFactory.createLineBorder(Color.red,2)); mypanel01.add(mybutton01,BorderLayout.CENTER);
    mypanel01.add(mybutton02,BorderLayout.NORTH);
    mypanel02.add(mybutton03);
    mycontainer01.add(mypanel01);
    mycontainer01.add(mypanel02);
    }
    }
    class myPanel extends JPanel
    {
    public void paint(Graphics g)
    {
                    super.paint(g);
    update(g);
    } public void update(Graphics g)
    {
            g.drawOval(100,100,50,50);
             }
    }
      

  3.   

    mycontainer01.setLayout(new FlowLayout());
    mypanel02的父容器你设为FlowLayout,其大小是自动设定的。运行后,你会发现mypanel02是很小的,你要画(100,100,50,50),已经超出了它的范围,当然看不到了。另外,重载paintComponent()方法也是可以的。
    import javax.swing.*;
    import java.awt.*;
    import javax.swing.border.*;/*
    <applet code="myclspaneltest" width=300 height=300>
    </applet>
    */public class myclspaneltest extends JApplet
    {
    public void init()
    {
    Container mycontainer01=getContentPane();
    TitledBorder mytitleborder01=new TitledBorder("mypanel01 border");
    JButton mybutton01=new JButton("Center");
    JButton mybutton02=new JButton("This North");
    JButton mybutton03=new JButton("This is a test");
    JPanel mypanel01=new JPanel();
    myPanel mypanel02=new myPanel(); mycontainer01.setLayout(new GridLayout());
    mycontainer01.setSize(new Dimension(250, 200));
    mypanel01.setLayout(new BorderLayout());
    mypanel01.setBorder(mytitleborder01);
    mypanel01.setBorder(BorderFactory.createLineBorder(Color.blue,2));
    mypanel02.setBorder(BorderFactory.createLineBorder(Color.red,2)); mypanel01.add(mybutton01,BorderLayout.CENTER);
    mypanel01.add(mybutton02,BorderLayout.NORTH);
    mypanel02.add(mybutton03);
    mycontainer01.add(mypanel01);
    mycontainer01.add(mypanel02);
    }
    }
    class myPanel extends JPanel
    {
    public void paintComponent(Graphics g)
    {
                    super.paintComponent(g);
    update(g);
    } public void update(Graphics g)
    {
            g.drawRect(100,100,50,60);
             }
    }