2013-04-28 112 views
0

有誰知道你是否可以用ObjectOutputStream保存ImageIcon文件? 我有一個人員註冊表,我使用ObjectOutputStream保存,因此將imageicon與該信息一起編寫會非常方便。 但是,當我嘗試閱讀圖像圖標時,沒有任何反應。我閱讀所有其他信息,但似乎不能得到ImageIcon我可以使用ObjectOutputStream保存ImageIcon嗎?

任何人有什麼想法,我可以做什麼?編輯: 我有一個人類和一個人的註冊表類。下面的 是人類,而人員註冊類只是幾個人的集合。我用objectoutput流寫出人員註冊表。

public Person(String fn, String en, String a, int t, ImageIcon kb, Kort k) { 
     fname= fn; 
     lname= en; 
     adress= a; 
     tlf= t; 
     card= k; 
     df.format(medlemsNr= ++nextNr); 
     cardPicture= kb; 
     neste= null; 
    } 

public void writePersonsToFile() { 
     try(ObjectOutputStream utfil= new ObjectOutputStream(
       new FileOutputStream(("PersonRegistry.data")))) { 
      utfil.writeObject(personRegistry); 
     } 
     catch(NotSerializableException nse) { 

     } 
     catch(IOException ioe) { 

     } 
    } 
+0

當你用'ObjectInputStream'讀'imageicon'時會發生什麼? – Apurv 2013-04-28 13:44:47

+0

嗯,沒什麼。首先,我用連續的方式閱讀人員註冊表。所有的數據(文本)都存在,但我希望它使用JLabel.setIcon(imageIcon)在JLabel上顯示imageicon,但沒有任何反應。 – fuLLMetaLMan 2013-04-28 13:48:35

+0

你可以分享代碼保存'imageicon'與'ObjectOutputStream'和你正在閱讀代碼'imageicon' – Apurv 2013-04-28 14:37:36

回答

1

我終於解決了。這是我手上的一個愚蠢的錯誤。 它工作正常,通過ObjectOutputStream保存ImageIcon並再次。 麻煩與我試圖保存的文件。

我想保存的ImageIcon位於GUI上的JLabel內。 保存它,我只好用先拿到圖標:

ImageIcon imgIcon= (ImageIcon)imgLabel.getIcon(); 

,然後通過OutputStream中運行它。感謝所有幫助。 =)

1

我不明白你的問題?你有一個圖像流,你想創建一個圖像對象來繪製或其他行動?

如果這樣,你可以在ImageIO class

使用ImageIO.read(ImageInputStream stream)如果您有圖像的流(例如:從URL),並要保存到圖像文件,你可以節省包裝它與FileOutputStream和簡單文件將它寫入一個文件。

+0

這不是一個答案。請再次閱讀該問題。 – Apurv 2013-04-28 14:39:37

+0

事情是我有一個ImageIcon,並且我想將它與字符串信息(如果可能的話)一起保存在objectoutputstream中,然後再從objectinputstream中讀取它。或者我必須將imageicon分開保存在ImageOutput中? – fuLLMetaLMan 2013-04-28 15:12:05

相關問題