2014-10-31 68 views
0

當我試圖保存Image上傳的用戶時,出現以下錯誤。java.io.IOException:不支持對象類型

java.io.IOException: Object type not supported: com.codename1.ui.Image value: [email protected] 
at com.codename1.io.Util.writeObject(Util.java:406) 

以下是我的程序。

用戶類

public class User implements Externalizable { 
     private String name; 
     private Image proImg; 

     public void externalize(DataOutputStream out) throws IOException { 
      Util.writeUTF(getName(), out); 
      Util.writeObject(getProImg(), out); 

     } 
     public void internalize(int version, DataInputStream in) throws IOException { 
      setName(Util.readUTF(in)); 
      setProImg((Image) Util.readObject(in)); 
     } 
     ... 

} 

的StateMachine類

protected void onCreateAccountGui_SaveBtnAction(Component c, ActionEvent event) { 
    User usr = new User();  
    usr.setName(findNametxta(c).getText()); 
    usr.setProImg(findProImgGallery(c).getImage()); 

    try 
    { 
     storedUser.writeObject("userStore", usr); 
    } 
    catch(Exception e) 
    { 
     e.printStackTrace(); 
    } 
} 

回答

0

Image不是Externalizable類,因爲它包含特定於平臺的本機圖像數據和不字節。

EncodedImageExternalizable,所以你應該使用它。默認情況下,所有的圖像,我們創建(例如資源)是EncodedImage但如果你有一個Image或可變圖像,你可以用它轉換爲EncodedImage

EncodedImage enc = EncodedImage.createFromImage(img, jpgOrPng); 
相關問題