首页 > 解决方案 > 线程“AWT-EventQueue-0”中的异常 java.lang.IndexOutOfBoundsException:索引:2,标签计数:2

问题描述

我正在尝试从我的标签中删除一个标签。当我同时添加 2 个或更多选项卡然后删除第一个添加的选项卡时,结果是异常。为什么?

添加选项卡中的代码:

     String name4 = "Untitled" + jTabbedPane2.getTabCount();
   name3=new JLabel("Untitled" + jTabbedPane2.getTabCount());
   pnlTab = new JPanel(new GridBagLayout());
   text=new JTextArea();
    text.setWrapStyleWord(true);
    text.setLineWrap(true);
    text.setFont(new Font("Tahoma", Font.PLAIN, 72));


    pnlTab.setOpaque(false);
    button = new JButton("X");
    button.setForeground(Color.red);
   
   gbc = new GridBagConstraints();
  gbc.gridx = 0;
  gbc.gridy = 0;
  gbc.weightx = 0;


     pnlTab.add(name3, gbc);

   gbc.gridx++;
   gbc.weightx = 0;
   pnlTab.add(button, gbc);


    jTabbedPane2.addTab(null, text);
    
    jTabbedPane2.setTabComponentAt(jTabbedPane2.getTabCount()-1, pnlTab); 

删除选项卡中的代码:

    private void jTabbedPane2MousePressed(java.awt.event.MouseEvent evt) {                                          
    int index = jTabbedPane2.getSelectedIndex();
    
     button.addActionListener(new ActionListener(){
        @Override
        public void actionPerformed(ActionEvent e) {
            jTabbedPane2.remove(index); 
           
        }

      });
    
   }     

为什么结果是:

     Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 2, Tab 
   count: 2  

标签: javaexception

解决方案


推荐阅读