Estou criando este applet que possui quatro paineis a serem apresentados
atrav�s do cardLayout.

O problema � que n�o estou conseguindo passar as imagens para que elas
sejam apresentadas na tela.  coloquei alguns testes na fonte para ver o que
era o erro e parece que a imagem n�o est� sendo enviada para o construtor
da classe que cria o desenho.
Se alguem conseguir resolver agradeceria muito. 

O c�digo fonte est� em anexo (obs. n�o preocupem com eventos antigos, ele �
para rodar at� em 1.02)

Rodolfo Ricci
import java.awt.*;
import java.applet.Applet;
import java.net.*;

class ButtonPanel extends Panel
{
    ButtonPanel(String id)
    {
        setLayout(new BorderLayout());
        add("Center", new Button(id));
    }
}
class PaintPanel extends Panel
{
    Image frame;

    PaintPanel(Image i)
    {

        frame = i;
    }

    public void paint(Graphics g)
    {
       if (frame != null)
       {
           g.drawString("teste", 10,10);
       }
       else
       {
            g.drawImage(frame,10,10,this);
       }
    }
}

public class cores extends Applet
{
    static Image frame[] = new Image[4];
    Button
        claras     = new Button("Claras"),
        medias     = new Button("M�dias"),
        escuras    = new Button("Escuras"),
        especiais  = new Button("Especiais");
    Panel cartelas = new Panel();
    CardLayout cl  = new CardLayout();

    public void init()
    {

        for (int i=0; i <4; i++)
            frame[i] = getImage(getDocumentBase(),"frame"+i+".gif");

        setLayout(new BorderLayout());
        Panel p = new Panel();
        p.setLayout(new FlowLayout());
        p.add(claras);
        p.add(medias);
        p.add(escuras);
        p.add(especiais);
        add("North", p);
        cartelas.setLayout(cl);
        cartelas.add("Cartao claras",
            new PaintPanel(frame[0]));
        cartelas.add("Cartao medias",
            new PaintPanel(frame[1]));
        cartelas.add("Cartao escuras",
            new ButtonPanel("Cores Escuras"));
        cartelas.add("Cartao especiais",
            new ButtonPanel("Cores Especiais"));
        add("Center", cartelas);
    }

    public boolean action(Event evt, Object arg)
    {
        if (evt.target.equals(claras))
        {
            cl.first(cartelas);
        }
        else if (evt.target.equals(medias))
        {
            cl.first(cartelas);
            cl.next(cartelas);
        }
        else if (evt.target.equals(escuras))
        {
            cl.first(cartelas);
            cl.next(cartelas);
            cl.next(cartelas);
        }
        else if (evt.target.equals(especiais))
        {
            cl.last(cartelas);
        }
        else
            return super.action(evt, arg);
            return true;
    }
}

Responder a