import java.applet.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class myPanel extends JPanel{
int x;
JLabel j;
myPanel(int a)
{
x=a;
getSize();
j=new JLabel("我是第"+x+"个标签");
add(j);
}
}
public class Buju extends Applet implements ActionListener{
CardLayout card;
myPanel mp[];
JPanel p;
private void addButton(JPanel pan,String butName,ActionListener listener)
{
JButton a = new JButton(butName);
a.setActionCommand(butName);//问题1:这句话可有可无,但是显示的图型却不一样,为甚?
/**
* .setActionCommand("good") 这名是设置JButton的动作命令。
这样在ActionListener覆盖的actionPerformed(ActionEvent e)
方法中通过参数e.getActionCommand()可以获取对应的动作命令,
这在一个ActionListener处理多个动作事件时比较有用*/
a.addActionListener(listener);
pan.add(a);
}
public void init()
{
setLayout(new BorderLayout());
card = new CardLayout();
this.setSize(400,150);
p = new JPanel();
p.setLayout(card);
mp = new myPanel[10];
for(int i=0;i<10;i++)
{
mp=new myPanel(i+1);
p.add("A"+i,mp);//问题2:这里A是什么意思?
}
JPanel p2 = new JPanel();
addButton(p2,"第一个",this);
addButton(p2,"最后一个",this);
addButton(p2,"前一个",this);
addButton(p2,"后一个",this);
add(p,"Center");
add(p2,"South");
}
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand().equals("第一个"))
card.first(p);
else if(e.getActionCommand().equals("最后一个"))
card.last(p);
else if(e.getActionCommand().equals("前一个"))
card.previous(p);
else if(e.getActionCommand().equals("后一个"))
card.next(p);
}
}
|