我有一个代码,它会增加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");
}
仍然无效
答案 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++;
}
}
}