没有抛出IndexOutOfBoundsException JFrame

时间:2018-02-21 04:39:07

标签: java exception exception-handling nullpointerexception

我有一个代码,它会增加arraylist.get(index)中的索引,当我到达列表末尾时,它会被用作下一个按钮,它会抛出IndexOutOFBoundsException并在文本框中显示一条消息。问题是如果我继续增加异常从未被捕获并且它不断重新启动arraylist,就像它一直到最后然后从头重新开始。

搜索索引在按钮处理程序

之外被初始化为0
  try{
    setResidentialFields(results,searchindex);

      }
      catch(ArrayIndexOutOfBoundsException e){
          jTextField17.setText("NO MORE PROPERTIES");
      }
       searchindex++; //increment for next element in current search

这是setResidentialFields方法

中的一行
  jTextField17.setText(String.valueOf(r.get(index).getTax())); //tax

要回复第一个回答,这就是我改变代码的方式

searchindex++;


    try{


  jButton1.doClick();
  }
  catch(IndexOutOfBoundsException e){
      jTextField7.setText("No more properties to display");
  }

仍然无效

1 个答案:

答案 0 :(得分:0)

我认为你的indexToSearch没有在正确的位置递增,从不打破循环(找不到属性) 。以下是如何执行此操作的示例:

public class Answer {

    public static void main(String[] args) {

        int[] arr = {1, 2, 3, 4, 5};
        int indexToSearch = 0;
        int propertyToFind = 7;

        while (true) {
            try {

                if (arr[indexToSearch] == propertyToFind) {
                    System.out.println("found at index " + indexToSearch);
                    break;
                }

            } catch (ArrayIndexOutOfBoundsException e) {
                System.out.println("property " + propertyToFind + " not found");
                break;
            }

            indexToSearch++;
        }
    }
}