JFormattedTextField nullpointerexception
У меня есть панель, которая показывает список пациентов (ID/ имена / возраст). У меня есть список, который, когда я щелкаю пациента, связывает данные пациента с текстовыми полями на моей панели.
Проблема: Когда я пытаюсь обновить информацию о пациенте, я получаю нулевое исключение для моего возраста JFormattedTextField, ТОЛЬКО когда я не нажимаю текстовое поле возраста, прежде чем нажать кнопку обновления.
Для проверки 1. Все текстовые поля пусты 2. Я щелкаю пациента, он обновляет текстовые поля с информацией о пациенте 3. Я изменяю, скажем, идентификатор пациента на что-то другое, и нажимаю обновить -> nullpointerexception
но если я вместо этого нажму на пациента, а затем просто нажму на возраст JFTF, а затем нажму "обновить", он отлично прочитает данные.
Есть ли способ "нажать" на текстовое поле??
мой код = когда я нажимаю на список
int patientIndex = patientList.getSelectedIndex();
if (patientIndex == -1) {
return;
}
Object info = listModel.get(patientIndex);
String infoString = (String) info;
StringTokenizer st = new StringTokenizer(infoString);
idTF.setText(st.nextToken());
if (idTF.getText().equals("Empty")) {
idTF.setText("");
return;
}
firstNameTF.setText(st.nextToken());
lastNameTF.setText(st.nextToken());
ageTF.setText(st.nextToken());
-
String fName, lName, id, id2; // For now the ID will be name+age
int age;
Patient p = new Patient();
boolean gender;
// attempts to read the text fields
try {
fName = firstNameTF.getText();
lName = lastNameTF.getText();
id = idTF.getText();
age = ((Number) ageTF.getValue()).intValue();
System.out.println("age = " + age);
} catch (NullPointerException ex) {
System.out.println(ex.getMessage());
statusLabel.setText("All fields marked by a * are requried!");
}
1 ответ
Я использовал неправильную функцию, чтобы добавить возраст в поле возраста. Поскольку он отформатирован, я должен использовать setValue().
старый код
ageTF.setText(st.nextToken());
ageTF.setValue(Integer.valueOf(st.nextToken()));