【问题标题】:Array not receiving radio buttons value数组未接收单选按钮值
【发布时间】:2014-06-09 03:59:50
【问题描述】:

我现在有一个问题,不知道为什么会这样,但我正在使用单选按钮让用户选择他们希望循环运行多少次。

所以问题是当我运行它时,随机数没有被存储到数组中我得到一个边界异常:

这里;

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 0

public class SortingProgramView extends FrameView {
    int numOfEntries;
    int[] numbers = new int[0];

    private void sortButtonActionPerformed(java.awt.event.ActionEvent evt) {

    for (int i = 0; i <= numOfEntries-1 ; i++)
   {
    numbers[i]= (-10000) + (int)(Math.random()*20001);
   }
   unsortedInfo();
}
private void unsortedInfo(){
    unsortedOutput.setText(" ");
    for (int j=0;j<=numOfEntries;j++){
        unsortedOutput.append(+numbers[j]+"\n");
    }
}
private void tenEntriesActionPerformed(java.awt.event.ActionEvent evt) {
    numOfEntries = 10;
    numbers = new int[numOfEntries];
}

private void hundredEntriesActionPerformed(java.awt.event.ActionEvent evt) {
    numOfEntries = 100;
    numbers = new int[numOfEntries];
}

private void thousandEntriesActionPerformed(java.awt.event.ActionEvent evt) {
   numOfEntries = 1000;
   numbers = new int[numOfEntries];
}

private void fiveThousandEntriesActionPerformed(java.awt.event.ActionEvent evt) {
    numOfEntries = 5000;
    numbers = new int[numOfEntries];
}
}

【问题讨论】:

  • 你在知道你可能需要多少元素之前就声明了你的数组。等到用户做出选择或者您确实需要数组后再初始化它。

标签: java arrays swing indexoutofboundsexception


【解决方案1】:

这一行:

int[] numbers = new int[numOfEntries];

在以下任何调用之前发生:tenEntriesActionPerformedhundredEntriesActionPerformed 等。

您应该将这些方法更改为:

private void tenEntriesActionPerformed(java.awt.event.ActionEvent evt) {
    numOfEntries = 10;
    numbers = new int[numOfEntries];//resize the array
}

【讨论】:

  • 嗯。它有效,但我现在得到了:线程“AWT-EventQueue-0”中的异常 java.lang.ArrayIndexOutOfBoundsException: 10
  • 你在哪一行得到这个?看来您只是超出了数组的范围。假设数组的大小为 10,它只有从 0 到 9 的索引(不是 10!)。
  • 你能在开始的问题中发布你更新的代码吗?它不应该从您显示的代码中做到这一点
  • 您在方法unsortedInfo 中的循环是错误的。查看您使用的另一个循环,看看您是否能找到问题所在。提示:你已经离开了我的 1。:)
猜你喜欢
  • 1970-01-01
  • 2019-10-04
  • 1970-01-01
  • 1970-01-01
  • 2012-02-01
  • 2011-04-20
  • 2015-03-22
  • 2022-07-25
  • 1970-01-01
相关资源
最近更新 更多