Avatar billede the_connector Nybegynder
14. november 2005 - 01:52 Der er 3 kommentarer og
1 løsning

Serialiseing af applikation i java

Hej Experter

Jeg har lavet en applikation i Java med anvendelse af swing. Applikationen kan findes på følgende adresse: www.control.aau.dk/~ksno04

Jeg har prøvet at lave noget seralisering således at de objekter som man har tilføjet vil blive gemt til næste gang programmet startes. Jeg ha implementeret en funktion i MainGUI, som gemmer objekter i en fil, men jeg har lidt problemer med at oprette dem igen.

Håber der er nogle der har et forsalg til en løsning
Avatar billede esbenp Nybegynder
14. november 2005 - 09:05 #1
403 forbidden er beskeden jeg får fra webservereren
Avatar billede the_connector Nybegynder
14. november 2005 - 10:17 #2
Beklager meget...

Håer stadig der er nogle experter der har lyst til at hjælpe

http://www.control.aau.dk/~ksno04-nobackup/source/
Avatar billede lborupj Nybegynder
20. november 2005 - 19:18 #3
Stadigt fejl, dog en 404 nu! :-)

Meen saver/loader du vha. ObjectOutput- ObjectInput streams? Og de
er lavet serializable (implements Serializable) og har en
no-arg constructor??
Avatar billede the_connector Nybegynder
06. december 2005 - 12:12 #4
Beklager....jeg har løst problemet selv. Her er løsninge, hvis nogle skulle lave noget lignene.

package Serialization;
import java.io.*;
import java.util.ArrayList;

import javax.swing.JLabel;

import Core.Domain;
import GUI.Gui;
import GUI.backgroundImage;
import Network.Device;

public class Serialisering {
   
    private static ArrayList<Device> l;
    private static ArrayList<backgroundImage> g;
   
public static void gem(Object obj, String filnavn) throws IOException
{
    FileOutputStream datastrøm = new FileOutputStream(filnavn);
    ObjectOutputStream objektstrøm = new ObjectOutputStream(datastrøm);
    objektstrøm.writeObject(obj);
    objektstrøm.close();
   
}

public static Object hent(String filnavn) throws Exception
{
    FileInputStream datastrøm = new FileInputStream(filnavn);
    ObjectInputStream objektstrøm = new ObjectInputStream(datastrøm);
    Object obj = objektstrøm.readObject();
    objektstrøm.close();
   
    return obj;
}


public static void load(){
    try {
        ArrayList<Device> l;
        l = (ArrayList<Device>)    Serialisering.hent("devices.ser");
       
        for (Device device : l){
            Device tempDevice = new Device(Domain.gui, device);
            Domain.networkDevices.addDevice(tempDevice);
            if (tempDevice.added == true){
            Domain.gui.houseMap.add(tempDevice);
            tempDevice.setBounds(device.labelX, device.labelY, device.labelSizeX, device.labelSizeY);
            }
            else{
            Domain.gui.deviceList.add(tempDevice);
            }
            Domain.gui.validate();
            Domain.gui.houseMap.updateUI();
            Domain.gui.houseMap.repaint();
            Domain.gui.deviceList.updateUI();
            Domain.gui.deviceList.repaint();
           
        }
        ArrayList<backgroundImage> g;
        g = (ArrayList<backgroundImage>)    Serialisering.hent("system.ser");
        for (backgroundImage houseMap : g){
            Domain.gui.houseMap.setIcon(houseMap.getIcon());
           
        }
       
    } catch (Exception e) {
        System.out.println(e);
    }       
   
}

public static void save() throws Exception
{
    try {
       
        l = new ArrayList();
        g = new ArrayList();
        int[] names = Domain.networkDevices.getNetworkDevices();
        for( int i = 0; i < names.length; ++i )
        {
            l.add(Domain.networkDevices.getDevice(names[i]));
        }
        g.add(Domain.gui.houseMap);
        Serialisering.gem(l,"devices.ser");
        Serialisering.gem(g,"system.ser");
    }
   
    catch (Exception e){
        System.out.println("Error on Saving" + e);
   
    }
   
}

}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester