private void searchButtonActionPerformed() {
String tempTitle = JOptionPane.showInputDialog(this, "Enter Movie Title:");
if(tempTitle != null) {
for(int i = 0; i < product.length; i++) {
ProductDataExtended tempProd = product[i];
if(tempTitle.equalsIgnoreCase(tempProd.getMovieName())) {
INDEX = i;
Products();
break;
}//End if
else if("".equals(tempTitle)) {
JOptionPane.showMessageDialog(this, "No movie title entered!"
, "Oops!", JOptionPane.ERROR_MESSAGE);
break;
}//End else if
else if(!tempTitle.equalsIgnoreCase(tempProd.getMovieName())){
JOptionPane.showMessageDialog(rootPane, "Product not found.");
break;
}//End else
}//End for loop
}//End if
}//End method
我的问题是,在这部分,
else {
JOptionPane.showMessageDialog(this, "Product not found.");
}
即使输入了有效的搜索,消息对话框仍然会弹出。关于为什么或如何解决这个问题的任何想法?
如果我把这部分拿出来,搜索功能就完美了;除了它没有显示无效搜索的消息之外。
答案 0 :(得分:0)
我们假设tempTitle
等于product
的第二个元素,而不是第一个元素。
在for
- 循环的第一次遍历中,第一个if
为false
,第二个if
为false
,第三个if
} true
,结果为"Product not found"
。
由于break
,该循环不会被第二次遍历。
只有将tempTitle
与produkt
的所有元素进行比较后,才能确定它不存在。
答案 1 :(得分:-1)
我明白了。我所要做的就是改变
else if(!tempTitle.equalsIgnoreCase(tempProd.getMovieName())){}
到
else if(i == product.length - 1) {}
和presto!有用。