我有代码在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");
}
还是不行
最佳答案
我认为您的 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++;
}
}
}
关于java - JFrame 未抛出 IndexOutOfBoundsException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48898267/