2016-05-22 8 views
-1

-Der Anordnung von Geräten (Uhr, Lampe oder Fernsehen) ist auf einer Anordnung von Etikett (Bildern []) dargestellt in einem 3x3 GitterAbrufen von Bildsymbol für die gespeicherten Objekte nach der Deserialisierung

-An Beispiel einer Ausgabe von Gerätesymbol (das ist, wenn ein Gerät mit dem Netz hinzugefügt wird, wenn eine Schaltfläche mit der Bezeichnung ‚add device‘)

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

Dies ist mein Code zum Speichern der Reihe von Geräten (Objekte) in eine Datei und liest sie zurück in (Erneutes Auffüllen des Geräte-Arrays):

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); 
      } 
     } 
    } 

Nach der Deserialisierung versuche ich das Imageicon für die Appliances im Array (das gerade neu bestückt wurde) anzuzeigen. Wie auch immer ich versuche, scheint nichts zu passieren (das Raster der Bilder zeigt keine Veränderung).

Wonach frage ich: Kann mir jemand eine Methode sagen, die Bildsymbole für die Appliances auf das Raster der Bilder anzuwenden, sobald die Deserialisierung stattgefunden hat?

Antwort

0

Sie deserialisieren in eine lokale Variable, deren Bereich mit dem try Block endet, in dem es deklariert ist, und Sie nichts mit der lokalen Variablen tun, also passiert nichts.

Vermutlich sollten Sie in eine Membervariable deserialisieren.

Verwandte Themen