检索反序列化后保存的对象的图像图标

时间:2016-05-22 02:46:15

标签: java arrays object deserialization imageicon

- 电器阵列(时钟,灯或电视)以3x3网格显示在一系列标签(图片[])上

- 输出设备图标的示例(通过标有'添加设备'的按钮将设备添加到网格中时)

Television myTelevision = new Television();
                appliance[count-1] = myTelevision;                
                pictures[count-1].setIcon(appliance[count-1].getPicture());

这是我将设备数组(对象)保存到文件并将其重新读入(重新填充设备阵列)的代码:

    if(e.getSource()==but3)
    {  
        ObjectInputStream input 
            = null;
        try {
            input = new ObjectInputStream(
                    new FileInputStream("livingroom.bat"));
            Appliance[] appliance = (Appliance[]) (input.readObject());
        } catch (IOException ex) {
            Logger.getLogger(HomeController.class.getName()).log(Level.SEVERE, null, ex);
        } catch (ClassNotFoundException ex)
        {
            Logger.getLogger(HomeController.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            try {
                input.close();
            } catch (IOException ex) {
                Logger.getLogger(HomeController.class.getName()).log(Level.SEVERE, null, ex);
            }
        }




    }


    if(e.getSource()==but4)
    {
        ObjectOutputStream output 
            = null;
        try {
            output = new ObjectOutputStream(
                    new FileOutputStream("livingroom.bat", true));
            output.writeObject(appliance);
        } catch (IOException ex) {
            Logger.getLogger(HomeController.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            try {
                output.close();
            } catch (IOException ex) {
                Logger.getLogger(HomeController.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }

反序列化后,我试图显示数组中设备的imageicon(刚刚重新填充)。然而,无论我如何尝试似乎都没有发生(图片网格显示没有变化)。

我要求的是什么:有人可以告诉我一种方法,一旦进行反序列化,就会将设备的图像图标应用到图片网格中吗?

1 个答案:

答案 0 :(得分:0)

您正在反序列化为一个局部变量,其范围以声明它的try块结束,并且您不对局部变量执行任何操作,因此没有任何反应。

大概你应该去成员变量。