Results 1 to 1 of 1
  1. #1
    Wolverine is offline Member
    Join Date
    Apr 2009
    Posts
    11
    Rep Power
    0

    Default Strange behaviour in serialization

    Hi guys,i'm tempting to load a filedata that i serialized before but i obtain a strange behaviour:
    I serialized my class that have this constructor:

    Java Code:
    public  ListaRosa()
    	{
    		listaGiocatori = new ListaGiocatori[4];
    		listaGiocatori[0] = new ListaPortieri(3);
    		listaGiocatori[1] = new ListaDifensori(8);
    		listaGiocatori[2] = new ListaCentrocampisti(8);
    		listaGiocatori[3] = new ListaAttaccanti(6);
    	}
    and this method:

    Java Code:
    public static ListaRosa caricaListaRosa(){
        		FileInputStream f = null;
        		ObjectInputStream is = null;
        		ListaRosa listaRosa = null;
        		try {
        			f = new FileInputStream("ListaNomi.dat");//apertura canale stream
        			is = new ObjectInputStream(f);
    			}
    			catch (IOException e1) {
    				System.out.println("File non trovato");
    				//System.exit(3);
    			}
        			
    			try {
    				listaRosa = (ListaRosa) is.readObject();
    				is.close();
    				
    			}	catch (Exception e2){
    				System.out.println(e2.getMessage()+ "Caricamento fallito "+ e2.getCause());
    				System.exit(4);
    			}
    			return listaRosa;
        }
    
    public void salvaListaRosa(ListaRosa lista){
    		
    		FileOutputStream f = null;
    		String d;
    		try {
    			d =new String ("ListaNomi.dat");
    			f = new FileOutputStream(d);
    		}
    		catch(IOException ex) {
    			System.out.println(ex.getMessage() + "Creazione dato fallita" + ex.getCause());
    			System.exit(1);
    		}
    		ObjectOutputStream os = null;
    		try {
    			os = new ObjectOutputStream(f);
    			os.writeObject(lista);
    			os.flush();
    			os.close();	
    		}
    		catch (IOException e1) {
    			System.out.println(e1.getMessage() + "Salvataggio fallito" + e1.getCause());
    		   System.exit(2);
    		}
    	}
    and Listener that work with it are:
    Java Code:
    public class Caricamento implements ActionListener{
    	
    	private Gestione.ListaRosa listaRosa = new Gestione.ListaRosa();
    	private  final int COMBO_COUNT = 25;
    	
    	private JComboBox[] list = new JComboBox[COMBO_COUNT];
    	private JTextField[] nGiocatori = new JTextField[COMBO_COUNT];
    	
    	
    	public Caricamento(JComboBox[] list,JTextField[] nGiocatori){
    		this.list = list;
    		this.nGiocatori = nGiocatori; 
    	}
    	
    	public void actionPerformed(ActionEvent arg0) {
    		try{
    			Gestione.ListaRosa listaRosaLoaded = Gestione.ListaRosa.caricaListaRosa();
    			listaRosa = listaRosaLoaded;
    			caricaListaRosaInPannello();
    		}
    		catch(Exception ex){
    			System.out.println("Errore nel caricamento della lista rosa...");
    			return;
    		}
    	}
    	private void caricaListaRosaInPannello(){
    		for(int i=0; i<listaRosa.getSize(); i++){
    			Giocatore tmpGiocatore = listaRosa.get(i);
    			nGiocatori[i].setText(tmpGiocatore.getNome());
    			list[i].setSelectedIndex(tmpGiocatore.getRuolo());
    		}
    	}
    
    }
     
    class Salvataggio implements ActionListener{
    	
    	private Gestione.ListaRosa listaRosa = new Gestione.ListaRosa();
    	private  final int COMBO_COUNT = 25;
    	private JComboBox[] list = new JComboBox[COMBO_COUNT];
    	private JTextField[] nGiocatori = new JTextField[COMBO_COUNT];
    	
    	public Salvataggio(JComboBox[] list,JTextField[] nGiocatori){
    		this.list = list;
    		this.nGiocatori= nGiocatori;
    	}
    	
    	public void actionPerformed(ActionEvent arg0) {
    		for (int i = 0; i < list.length; i++) {
    			String nome = nGiocatori[i].getText();
    			int ruolo = list[i].getSelectedIndex();
    			try{
    				if(nome.equals(" ")){
    					System.out.println("Giocatore in posizione " + i + " non contiene il nome...");
    				}
    				listaRosa.addGiocatore(nome, ruolo);
    				
    				
    			}
    			catch(Exception ex1){
    				System.out.println("Errore costruzione rosa...");
    				listaRosa = new Gestione.ListaRosa();
    				return;
    			}
    			
    		}
    		try{
    			listaRosa.salvaListaRosa(listaRosa);
    		}
    		catch(Exception ex){
    			System.out.println("Errore in fase di salvataggio rosa...");
    			return;
    		}
    	}
    well i'm no problem when i invoke salvaListaRosa'method with my Listener in GUi,but when i invoke caricaListaRosa instead i just see only 8 names and the item of ComboBox do not displeyd the just item chosen before...
    and i see the message "Errore nel caricamento della lista rosa..."
    Same advice?
    I should change method serialization?Adapt it to my ListaRosa structure?
    Last edited by Wolverine; 05-23-2009 at 01:05 PM.

Similar Threads

  1. Replies: 2
    Last Post: 03-16-2009, 03:33 PM
  2. Replies: 0
    Last Post: 03-16-2009, 02:41 PM
  3. Java applet strange painting behaviour
    By sirdori in forum New To Java
    Replies: 1
    Last Post: 01-07-2009, 02:14 PM
  4. AffinedTransform strange behaviour
    By Echilon in forum AWT / Swing
    Replies: 3
    Last Post: 12-11-2008, 10:58 AM
  5. Strange behaviour in swing
    By cbalu in forum AWT / Swing
    Replies: 1
    Last Post: 05-23-2008, 10:23 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •