闹心的小问题!
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
class Mycanvas extends Canvas
{
int x,y;
Mycanvas(int a, int b)
{
x = a; y = b;
getSize();
}
public void paint(Graphics g)
{
g.setColor(Color.red);
g.fillOval(50,50,4*x,4*y);
g.drawString("我是第 " + x,20,90);
}
public Dimension getPreferredSize()
{
return new Dimension(200,100);
}
}
public class Example12_2 extends Applet implements ActionListener
{
CardLayout mycard;
Button button1,button2,button3;
Mycanvas mycanvas[];
Panel p;
public void init()
{
setLayout(new BorderLayout());
mycard = new CardLayout();
p = new Panel();
p.setLayout(mycard);
button1 = new Button("first"); button2 = new Button("next");
button3 = new Button("last one");mycanvas = new Mycanvas[21];
for(int i = 1; i <= 20; i++)
{
mycanvas[i] = new Mycanvas(i,i);
p.add(mycanvas[i]);
}
button1.addActionListener(this);
button2.addActionListener(this);
button3.addActionListener(this);
Panel p2 = new Panel();
p2.add(button1);p2.add(button2);
p2.add(button3);
add(p,"Center"); add(p2,"South");
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource() == button1)
{mycard.first(p);}
else if(e.getSource() == button2)
{mycard.next(p);}
else if(e.getSource() == button3)
{mycard.last(p);}
}
}
编译时没有问题,但是执行时出了毛病.错误代码如下:java.lang.IllegalArgumentException: cannot add to layout: constraint must be a string
at java.awt.CardLayout.addLayoutComponent(CardLayout.java:190)
at java.awt.Container.addImpl(Container.java:664)
at java.awt.Container.add(Container.java:307)
at Example12_2.init(Example12_2.java:41)
at sun.applet.AppletPanel.run(AppletPanel.java:353)
帮我看看是怎么回事,我眼睛都花了.