2013-04-01 63 views
0

我有一個顯示患者列表(ID /姓名/年齡)的面板。我有一個jlist,當我點擊病人時,它將病人的數據鏈接到我的面板中的文本框。JFormattedTextField nullpointerexception

問題:當我嘗試更新病人信息時,我得到了一個適合我年齡JFormattedTextField的nullpointerexception,只有當我在點擊更新之前不單擊年齡文本字段。 > NullPointerException異常

-

驗證 1.所有文本字段爲空 2.我點擊一個病人,它與病人信息 3.我改變說病人ID,以不同的東西,然後點擊更新更新文本框但是如果我點擊病人,然後點擊年齡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!"); 
    } 

回答

0

我用錯功能的年齡添加到年齡字段。由於它被格式化,我必須使用setValue()。

舊代碼

ageTF.setText(st.nextToken()); 

ageTF.setValue(Integer.valueOf(st.nextToken()));