CIAO A TUTTI, STO REALIZZANDO UN GIOKINO IN JAVA.![]()
HO FATTO SI CHE SI POTESSE SALVARE LA PARTITA IN CORSO, MA DURANTE IL CARICAMENTO DELLA PARTITA SALVATA (DESERIALIZZAZIONE) HO UN PICCOLO PROBLEMA CHE NON SONO RIUSCITO A RISOLVERE.
IL FATTO è CHE DOPO AVER DESERIALIZZATO L'OGGETTO, VADO A LANCIARE UN METODO DI ESSO PER FARLO RIPARTIRE, PASSANDOGLI UN THREAD.
SE FACCIO QUESTA OPERAZIONE L'APPLICZIONE RIPARTE, MA IL FRAME, QUINDI L'INTERFACCIA GRAFICA SI BLOCCA E NON MI FA VEDERE NIENTE TRANNE I BORDI DEL FRAME.
SE INVECE NON PASSO IL THREAD, MI FA VEDERE L'INTERFACCIA GRAFICA, MA NATURALEMNTE L'APPLICAZIONE NON FUNZIONA.
PERCHè TUTTO QUESTO?
VI SPOSTO IL CODICE dove effettuo la deserializzazione, AIUTATEMI HA TROVARE UNA SOLUZIONE:
NB: b2 è un JButton
b2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
ObjectInputStream objin=null;
FileInputStream in =null;
//Object temp=null;
Tavolo temp=null;
File f=null;
chooser =new JFileChooser();
try{
UnoFilter filtro = new UnoFilter();
chooser.setFileFilter(filtro);
chooser.setCurrentDirectory(new File("C:\""));
int response = chooser.showOpenDialog(null);
if (response == JFileChooser.APPROVE_OPTION) {
f = (File) chooser.getSelectedFile();
if (f == null || f.getName().equals("")) JOptionPane.
showMessageDialog(null, "Nome File Non Valido",
"Nome File Non Valido",
JOptionPane.ERROR_MESSAGE);
chooser.setMultiSelectionEnabled(false);
chooser.setFileSelectionMode(JFileChooser.FILES_ON LY);
in = new FileInputStream(f);
objin = new ObjectInputStream(new FileInputStream(f));
//ObjectInputStream ob=new ObjectInputStream(objin);
System.out.print("obj caricato");
temp = (Tavolo)objin.readObject();
System.out.print("obj letto");
objin.close();
System.out.print("buffer kiuso");
temp.setVisible(true);
Thread t=new Thread();
int primo=temp.getPrimo();
temp.giocaPartita(primo,t);
System.out.print("ok");
}
}
catch(Exception exc1){exc1.printStackTrace();}
}
});