数组索引超出了将数组结果追加到java文本区域的界限
我有两个程序,分别是SocketServer和MyNoteCenter。每次用户单击下载按钮时,它都会发送到SocketServer进行存储。用户可以通过单击“显示”按钮显示记录来检索其记录。之后,追加到文本区域,但不幸的是,我的代码出现了ArrayOutOfBound错误。错误显示MyNoteCenter中的显示方法和SocketServer方法中的显示方法。我在我的问题上搜索了很多解决方案,但看起来还是一样,我检查了数组索引是否足以容纳5个数据。当在MyNoteCenter调用某个函数时,5个数据将通过使用参数构造函数带到SocketServer MyNoteCenter程序(部分) 你不能硬编码5。唯一有效的索引是0、1、2、3、4 为什么要创建一个包含5个值的数组,然后只返回一个字符串?其他4个值将丢失 可能需要返回整个阵列:数组索引超出了将数组结果追加到java文本区域的界限,java,arrays,Java,Arrays,我有两个程序,分别是SocketServer和MyNoteCenter。每次用户单击下载按钮时,它都会发送到SocketServer进行存储。用户可以通过单击“显示”按钮显示记录来检索其记录。之后,追加到文本区域,但不幸的是,我的代码出现了ArrayOutOfBound错误。错误显示MyNoteCenter中的显示方法和SocketServer方法中的显示方法。我在我的问题上搜索了很多解决方案,但看起来还是一样,我检查了数组索引是否足以容纳5个数据。当在MyNoteCenter调用某个函数时,5
public String[] show()
...
return arr;
在SocketServer类中…show方法您试图返回arr[5]…这是一个错误,因为您的数组大小为5 arr[0]…到arr[4],display方法也是如此,STRarr[5]不可能。数组索引需要减少到4?因为您已将数组大小定义为5,因此,可能的索引为0,1,2,3,4,否则它将抛出ArrayIndexOutOfBoundException。所以现在根据需求返回将在范围内的索引。如前所述,对for循环的条件语句进行更改by@camickri尝试编辑根据您的指南,但我仍然得到相同的错误。。。线程“AWT-EventQueue-0”java.lang.ArrayIndexOutOfBoundsException 5在SocketServer.show(SocketServer.java:117)在MyNoteCenter.display(MyNoteCenter.java:235)在MyNoteCenter.actionPerformed(MyNoteCenter.java:213)在javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:22)中出现异常这是我在您的代码中得到的错误消息,您仍在尝试访问索引“5”。修复代码。我们无法为您进行调试。有关可能的问题,请参阅编辑。
public SocketServer(String selection,String id,String name,String year,String major) //The constructor accept the value from user and store it, it's being implement at others function
{
this.selection = selection;
this.name = name;
this.id = id ;
this.year = year ;
this.major = major ;
}
public String show()
{
String [] arr = new String[5];
arr[0] = name;
arr[1] = id;
arr[2] = year;
arr[3] = major;
arr[4] = selection;
counter++;
JOptionPane.showMessageDialog(null,"You are in" +counter);
return arr[5];
}
for(int i = 0; i <=ds.length;i++)
for(int i = 0; i < ds.length; i++)
return arr[5];
public String[] show()
...
return arr;