有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

未在JFrame中抛出java IndexOutOfBoundsException

我有一段代码,它在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) 个答案

  1. # 1 楼答案

    我假设您的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++;
            }
        }
    }