JTabbedPane报java.lang.ArrayIndexOutOfBoundsException错误

JTabbedPane报java.lang.ArrayIndexOutOfBoundsException异常
点击右边红色标题查看本文完整版:JTabbedPane报java.lang.ArrayIndexOutOfBoundsException异常

我写了以下代码,可在运行时,有 java.lang.ArrayIndexOutOfBoundsException异常。
import java.awt.Event;
import java.awt.Frame;
import java.awt.event.ActionEvent;

import javax.swing.AbstractAction;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JTabbedPane;
import javax.swing.JTextArea;
import javax.swing.KeyStroke;


public class TransTool extends JFrame {
public TransTool(){
setTitle( "TransTool ");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

initMenu();

tabbedPane = new JTabbedPane(JTabbedPane.SCROLL_TAB_LAYOUT);
add(tabbedPane);

setExtendedState( Frame.MAXIMIZED_BOTH );
setVisible(true);
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new TransTool();
}
void initMenu(){
setJMenuBar(menuBar);

fileMenu = new JMenu( "File ");
menuBar.add(fileMenu);

newAction = new FileAction ( "New ",KeyStroke.getKeyStroke( 'N ', Event.CTRL_MASK ));

newItem = fileMenu.add(newAction);

}

class FileAction extends AbstractAction{
FileAction(String name){
super(name);
}
FileAction(String name, KeyStroke keystroke) {
this(name);
if(keystroke != null)
putValue(ACCELERATOR_KEY, keystroke);
}
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getSource()== newItem){
newFile();
}
}

}

void newFile(){
tabbedPane.addTab( "new "+String.valueOf(index+1),textArea[index]) ;
index++;
}

JMenuBar menuBar = new JMenuBar();
JMenu fileMenu,editMenu;
FileAction newAction;
JMenuItem newItem;
JTabbedPane tabbedPane;
JTextArea[] textArea = new JTextArea[10];
int index = 0;

}


------解决方法--------------------
add(tabbedPane)改为this.getContentPane().add(tabbedPane);
------解决方法--------------------
JTextArea[] textArea = new JTextArea[10];
这句话的意思是:声明textArea是一个有10个元素的JTextArea数组,但是元素并没有被赋值,故出错。