import java.awt.event.*;
import javax.swing.*;import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.BorderLayout;
public class Grahmain extends JPanel implements ActionListener{

static JFrame myFrame;
JTabbedPane tabs;
JPanel panelA,panelB,panelC,panelD,panel;
JButton j1,j2,j3,j4;
public Grahmain()
{
tabs=new JTabbedPane();
panelA=new JPanel();
j1=new JButton("BUTTON1");
j1.addActionListener(this);
panelA.add(j1);
panelA.setBackground(Color.RED);

panelB=new JPanel();
j2=new JButton("BUTTON2");
j2.addActionListener(this);
panelB.add(j2);
panelB.setBackground(Color.BLACK);

panelC=new JPanel();
j3=new JButton("BUTTON3");
j3.addActionListener(this);
panelC.add(j3);
panelC.setBackground(Color.blue);

panelD=new JPanel();
j4=new JButton("BUTTON4");
j3.addActionListener(this);
panelD.add(j4);
panelD.setBackground(Color.cyan);

panel=new JPanel();
panel.setLayout(new FlowLayout());
panel.add(panelA);
panel.add(panelB);
panel.add(panelC);
panel.add(panelD);
panel.setBackground(Color.LIGHT_GRAY);

tabs.addTab("panel",panel);
setLayout(new BorderLayout());
add(tabs,BorderLayout.CENTER);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==j1)
{
JPanel jp1=new JPanel();
tabs.addTab("panelA",jp1);
}
else if(e.getSource()==j2)
{
JPanel jp2=new JPanel();
tabs.addTab("panelB",jp2);
}
else if(e.getSource()==j3)//难道这里有问题?
{
JPanel jp3=new JPanel();
tabs.addTab("panelC",jp3);
}
else if(e.getSource()==j4)//难道这里也有问题??
{
JPanel jp4=new JPanel();
tabs.addTab("panelD",jp4);
}
}
     
public static void main(String args[])
{
myFrame=new JFrame();
Grahmain gr=new Grahmain();
myFrame.getContentPane().add("Center",gr);
myFrame.setSize(300,200);
myFrame.show();
}

我用eclipse运行,但提示有错误,不知道什么错误,我点OK继续运行,能正常显示界面,但是我点BUTTON3后生成了两个
panelC,点BUTTON4却一个都不生成。点前面的BUTTON1,BUTTON2都正常。怎么回事???