2013-04-28 69 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

相关问题