当前位置: 技术问答>java相关
java.lang.ArrayIndexOutOfBoundsException illegal Component index: 6 这种异常如何解决???
来源: 互联网 发布时间:2014-12-25
本文导语: 我发现这种异常产生的原因是引用了java.awt.List的removeAll()方法. 在Win98下没有任何问题,但是在NT下就出现这种古怪的异常. 请问大虾,如何处理???? 环境描述: 我用的是cafe3.0, 用一个List存放查询内容,每次点击查询按钮的...
我发现这种异常产生的原因是引用了java.awt.List的removeAll()方法.
在Win98下没有任何问题,但是在NT下就出现这种古怪的异常.
请问大虾,如何处理????
环境描述:
我用的是cafe3.0, 用一个List存放查询内容,每次点击查询按钮的时候,就调用
removeAll()方法把list中的内容清空,然后再把查询的结果放进去,
但是在NT下就出现了问题,但是在win98下是根本没有问题的.很苦恼!!!
在Win98下没有任何问题,但是在NT下就出现这种古怪的异常.
请问大虾,如何处理????
环境描述:
我用的是cafe3.0, 用一个List存放查询内容,每次点击查询按钮的时候,就调用
removeAll()方法把list中的内容清空,然后再把查询的结果放进去,
但是在NT下就出现了问题,但是在win98下是根本没有问题的.很苦恼!!!
|
这是很有可能的。建议你换一种实现方法试试。
比如,一个一个清空。
比如,一个一个清空。
|
这种例外主要是由于list这种数据结构越界所致。奇怪的是你为什么不用clear()方法呢?
|
for(int i=List.length()-1; i>=0;i--)
{
List.remove(i);
}
remove 应该从最大值开始!
{
List.remove(i);
}
remove 应该从最大值开始!
|
是applet? 那就都装最新的jre13(比如netscape6带的那个)
|
//用向量试试.
//vector.removeAllElements();
//在win98下,用freejava3.0调试
//希望对你有用
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.io.*;
public class Test extends JFrame {
JList list = new JList();
JScrollPane sp = new JScrollPane(list);
Vector data = new Vector();
JButton button = new JButton("load");
ButtonListener blistener = new ButtonListener();
public Test(){
super("Test");
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {System.exit(0);}
});
list.setVisibleRowCount(10);
button.addActionListener(blistener);
Container contentPane = getContentPane();
contentPane.add(sp,BorderLayout.CENTER);
contentPane.add(button,BorderLayout.NORTH);
pack();
setSize(410,300);
setLocation(200,150);
setResizable(false);
setVisible(true);
}
public void loadData(String filename) {
File inputFile = new File(filename);
if (!inputFile.exists()) {
try{}
catch(Exception e){}
}
FileInputStream input = null;
try { input = new FileInputStream(inputFile);
}
catch(Exception ioe){ }
try { BufferedReader reader = new BufferedReader( new InputStreamReader(input));
if(!data.isEmpty())data.removeAllElements();
while (true) {
String currentLine = reader.readLine();
if (currentLine==null)
break;
data.addElement(currentLine);
list.setListData(data);
}
}
catch (Exception ioe) {
}
}
public static void main(String args[]) {
new Test().show();
}
class ButtonListener implements ActionListener {
public void actionPerformed (ActionEvent ae) {
Object obj = ae.getSource();
if (obj == button) {loadData("loadtry.txt");//写入文件路径和文件名
}
}
}
}
//vector.removeAllElements();
//在win98下,用freejava3.0调试
//希望对你有用
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.io.*;
public class Test extends JFrame {
JList list = new JList();
JScrollPane sp = new JScrollPane(list);
Vector data = new Vector();
JButton button = new JButton("load");
ButtonListener blistener = new ButtonListener();
public Test(){
super("Test");
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {System.exit(0);}
});
list.setVisibleRowCount(10);
button.addActionListener(blistener);
Container contentPane = getContentPane();
contentPane.add(sp,BorderLayout.CENTER);
contentPane.add(button,BorderLayout.NORTH);
pack();
setSize(410,300);
setLocation(200,150);
setResizable(false);
setVisible(true);
}
public void loadData(String filename) {
File inputFile = new File(filename);
if (!inputFile.exists()) {
try{}
catch(Exception e){}
}
FileInputStream input = null;
try { input = new FileInputStream(inputFile);
}
catch(Exception ioe){ }
try { BufferedReader reader = new BufferedReader( new InputStreamReader(input));
if(!data.isEmpty())data.removeAllElements();
while (true) {
String currentLine = reader.readLine();
if (currentLine==null)
break;
data.addElement(currentLine);
list.setListData(data);
}
}
catch (Exception ioe) {
}
}
public static void main(String args[]) {
new Test().show();
}
class ButtonListener implements ActionListener {
public void actionPerformed (ActionEvent ae) {
Object obj = ae.getSource();
if (obj == button) {loadData("loadtry.txt");//写入文件路径和文件名
}
}
}
}