importjava.awt.*;importjava.awt.event.*;publicclasssmp610extendsFrameimplementsActionListener{staticPanelpnl=newPanel();staticCardLayoutcrd=newCardLayout(20,15);Cvscvs[]=...
import java.awt.*;
import java.awt.event.*;
public class smp610 extends Frame implements ActionListener
{
static Panel pnl=new Panel();
static CardLayout crd=new CardLayout(20,15);
Cvs cvs[]=new Cvs[10];
Button a=new Button("First");
Button b=new Button("Next");
Button c=new Button("Previous");
Button d=new Button("Last");
smp610()
{
super("cardlayout");
setSize(300,250);
setVisible(true);
setBackground(Color.white);
setLayout(null);
add(pnl);
pnl.setLayout(crd);
pnl.setBackground(Color.lightGray);
pnl.setBounds(0,40,200,190);
for(int k=0;k<=9;k++)
{
cvs[k]=new Cvs(k);
pnl.add(""+k,cvs[k]);
}
add(a);
add(b);
add(c);
add(d);
a.setBounds(230,60,50,30);
b.setBounds(230,100,50,30);
c.setBounds(230,140,50,30);
d.setBounds(230,180,50,30);
a.addActionListener(this);
b.addActionListener(this);
c.addActionListener(this);
d.addActionListener(this);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent we){
setVisible(false);
System.exit(0);
}
});
}
public void actionPerformed(ActionEvent ae)
{
if(ae.getSource()==a)
{
crd.first(pnl);
}
if(ae.getSource()==b)
{
crd.next(pnl);
}
if(ae.getSource()==c)
{
crd.previous(pnl);
}
if(ae.getSource()==d)
{
crd.last(pnl);
}
}
class Cvs extends Canvas
{
int i;
Cvs(int j)
{
i=j;
setBackground(Color.yellow);
}
public void paint(Graphics g)
{
g.setColor(Color.red);
g.fillRect(30,25,10+10*i,8+8*i);
g.drawString("这是第"+(i+1)+"个画面",20,150);
}
}
public static void main(String args[])
{
smp610 smp=new smp610();
crd.first(pnl);
}
}
以上是一段实例程序的代码,小弟是新手,有些地方不理解,想问一下:
int i;
Cvs(int j)
{
i=j;
setBackground(Color.yellow);
}
这段代码中,包含了一个成员变量i和类Cvs的构造方法,请问一下,括号里的int j是什么?还有,i与j在之前都没有声明或者赋值过,那么这里的i和j的值又是什么?为什么?还有:
for(int k=0;k<=9;k++)
{
cvs[k]=new Cvs(k);
pnl.add(""+k,cvs[k]);
}
这句话是不是在面板中添加了10个不同的画布?后面的pnl.add(""+k,cvs[k]);为什么k前面要加一个空字符?这段话小弟也不是很理解,希望高人能解读一下。还有,在开头建立Cvs的类对象时用了数组,是建立类对象么?为什么要用数组?这句话的意义?
问题有点多。。小弟初学,麻烦各位高手们解答
展开