0

我有一个显示患者列表(ID/姓名/年龄)的面板。我有一个 jlist,当我单击患者时,它会将患者的数据链接到面板中的文本字段。

问题:当我尝试更新患者信息时,我的年龄 JFormattedTextField 出现 nullpointerexception,仅当我在点击更新之前未单击年龄文本字段时。

验证 1. 所有文本字段为空 2. 我单击一个患者,它使用患者信息更新文本字段 3. 我将患者 ID 更改为不同的内容,然后单击更新 - > nullpointerexception

但是,如果我改为单击患者,然后单击年龄 JFTF,然后单击更新,它可以很好地读取数据。

有没有办法“点击”文本字段?

我的代码 = 当我点击 jlist

    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!");
    }
4

1 回答 1

0

我使用错误的函数将年龄添加到年龄字段。由于它已格式化,我必须使用 setValue()。

旧代码

ageTF.setText(st.nextToken());

ageTF.setValue(Integer.valueOf(st.nextToken()));
于 2013-04-09T21:52:03.333 回答