Java中的JTabbedPane应用时的一个异常???
我写了以下代码,可在运行时,有java.lang.ArrayIndexOutOfBoundsException异常。请高手帮俺看看吧。不胜感激!!importjava.a...
我写了以下代码,可在运行时,有 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;
}
我现在弄好了,在tabbedPane.addTab("new"+String.valueOf(index+1),textArea[index]) ; 前加一句textArea[tabIndex] = new JTextArea();
可为什么要加呢??本来不是就有这个方面的声明与定义了吗???
这应该说是涉及到数组的应用吧,我有时间了可得把这个问题弄清楚 展开
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;
}
我现在弄好了,在tabbedPane.addTab("new"+String.valueOf(index+1),textArea[index]) ; 前加一句textArea[tabIndex] = new JTextArea();
可为什么要加呢??本来不是就有这个方面的声明与定义了吗???
这应该说是涉及到数组的应用吧,我有时间了可得把这个问题弄清楚 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询