- 电器阵列(时钟,灯或电视)以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(刚刚重新填充)。然而,无论我如何尝试似乎都没有发生(图片网格显示没有变化)。
我要求的是什么:有人可以告诉我一种方法,一旦进行反序列化,就会将设备的图像图标应用到图片网格中吗?
答案 0 :(得分:0)
您正在反序列化为一个局部变量,其范围以声明它的try
块结束,并且您不对局部变量执行任何操作,因此没有任何反应。
大概你应该去成员变量。