Принимая ввод, мое текстовое поле начинает удаление ввода и генерирует исключение java.io.EOFException. В моем keyReleased
обработчике событий count
остается 0
; обработчик не делает count++
.java.io.EOFException и проблемы с подсчетом в keyReleased handler
Может кто-нибудь предложить, что я делаю неправильно и как решить эту проблему?
public void keyReleased(KeyEvent e) {
int count = 0;
result = null;
setVisible(false);
matchingVector.clear();
String searchTerm = dialog.getField(getSearchFieldNumber());
System.out.println(searchTerm);
if (searchTerm.length() > 0) {
listModel.removeAllElements();
System.out.println(recordVector.size());
for (int i = 0; i < recordVector.size(); i++) {
if (matchesCriteria(recordVector.get(i), searchTerm)) {
matchingVector.add(recordVector.get(i));
count++;
}
}
if (count == 0) {
clearFields();
System.out.println("Bad-bad things happen here?");
} else if (count == 1) {
updateFields(matchingVector.get(0));
} else if (count > 1) {
validate();
setVisible(true);
setSize(WIDTH, Math.min(500, matchingVector.size() * ROW_HEIGHT));
}
} else {
clearFields();
}
}
Пожалуйста, ваши clearFields метод(). – Uli
Если счетчик остается '0' условие' matchesCriteria (recordVector.get (я), SEARCHTERM) 'никогда не возвращает истинные – Zion
частные недействительные clearFields() { \t \t // очистить все поля в диалоговом \t \t dialog.setField (2, ""); \t \t dialog.setField (3, ""); \t \t dialog.setField (4, ""); \t} @Uli –