描述:
    这是一个网上的参考的例子,我运行的时候,出现以下问题,请知道的朋友解一下
    1、进行程序点删除再点增加,dos窗口会提示出很多信息,这些信息是起什么作用?

解决方案 »

  1.   

    晕,点了一下enter ,就发布出来了,还没有说完!
     2、点了删除几次后,再点增加,标签不会变化,我试了试,要点好几次(这个次数和我删除的次数一致),标签才会变化原代码:
     import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.event.*;public class JTabbedPane2 implements ActionListener,ChangeListener{
    int index=0;
    int newNumber=1;
    JTabbedPane tabbedPane=null;
    public JTabbedPane2(){
    JFrame f=new JFrame("JTabbedPane2");
    Container contentPane=f.getContentPane();
    contentPane.setLayout(new BorderLayout());


    //JLabel label1=new JLabel(new ImageIcon("jpg\\tupian.jpg"));

    JLabel label1=new JLabel("flower.jpg");
    JPanel panel1=new JPanel();
    panel1.add(label1); 

    JLabel label2=new JLabel("Label2",JLabel.CENTER);
    label2.setBackground(Color.pink);
    label2.setOpaque(true);
    JPanel panel2=new JPanel();
    panel2.add(label2);

    JLabel label3=new JLabel("Label3",JLabel.CENTER);
    label3.setBackground(Color.yellow);
    label3.setOpaque(true);
    JPanel panel3=new JPanel();
    panel3.add(label3);

    JButton b1=new JButton("删除标签");
    b1.addActionListener(this);
    contentPane.add(b1,BorderLayout.WEST);
    JButton b=new JButton("新增标签");
    b.addActionListener(this); JPanel panel4=new JPanel();
    //panel4.setLayout(new setLayout());
    panel4.add(b1);
    panel4.add(b);

    tabbedPane=new JTabbedPane();
    tabbedPane.setTabPlacement(JTabbedPane.TOP);
    tabbedPane.addChangeListener(this);
    tabbedPane.addTab("picture",null,panel1,"图案");
    tabbedPane.addTab("Label2",panel2);
    tabbedPane.addTab("label3",null,panel3,"label");
    //tabbedPane.setEnabledAt(2,false);
    contentPane.add(panel4,BorderLayout.SOUTH);
    contentPane.add(tabbedPane,BorderLayout.CENTER);

        f.pack(); 
    f.setSize(300,200);
    f.addWindowListener(new WindowAdapter(){
    public void windowClosing(WindowEvent e){
    //System.exit(0);
    ((Window)e.getComponent()).dispose();// 关闭当前窗口
    }
    });

    f.setVisible(true);
    }
    public void stateChanged(ChangeEvent e){
    /* if(index!=tabbedPane.getSelectedIndex())
    {
    if (index<tabbedPane.getTabCount()-1)
    tabbedPane.setEnabledAt(index+1,true);
    }
    */
    index=tabbedPane.getSelectedIndex();

    }

    public void actionPerformed(ActionEvent e){
    if (e.getActionCommand().equals("新增标签")){
    JPanel pane1=new JPanel();
    JLabel label4=new JLabel("new Label"+newNumber,JLabel.CENTER);
    label4.setOpaque(true);
    pane1.add(label4);
    tabbedPane.addTab("new"+newNumber,pane1);
    tabbedPane.setEnabledAt(newNumber+2,true);
    System.out.println(newNumber);
    newNumber++;
    tabbedPane.validate();
    //System.out.println(newNumber);
    }
    if (e.getActionCommand().equals("删除标签")){
    //tabbedPane.removeAll();
    tabbedPane.remove(tabbedPane.getSelectedIndex());
    //System.out.println(tabbedPane.getTabCount());
    System.out.println(newNumber);
    tabbedPane.validate();
    }
    }

    public static void main(String[] args){
    new JTabbedPane2();
    }

    }
      

  2.   

    1.出現那么多字  是因為這句tabbedPane.setEnabledAt(newNumber + 2, true);
    值越界了
    2.你把上面這句注釋掉  應該就可以了