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;
}
}