淘先锋技术网

首页 1 2 3 4 5 6 7

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的类对象时用了数组,是建立类对象么?为什么要用数组?这句话的意义?

问题有点多。。小弟初学,麻烦各位高手们解答

展开