CIao a tutti, sono nuovo.
Programmo da 4 anni in Java anche se solo nell'ultimo anno, frequentando la Facoltà di Ingegneria Informatica, ho iniziato a programmare seriamente.
Ho cercato un po' su questo forum ma non ho trovato la risposta al mio quesito, quindi ho creato un nuovo argomento. Se per caso ho sbagliato e l'argomento era già stato trattato vi prego di indicarmi il link dell'argomento. Comincio a spiegare..
Sto creando un'applicazione client server tramite protocollo TCP (premetto che questo non me lo hanno spiegato in facoltà e me lo sono visto da solo tramite JavaDoc, altri siti e manuali).
Ho già creato il client e il server e la rispettiva connessione fra i due; ho fatto in modo che il server possa inviare OGGETTI al client tramite gli stream: ObjectInputStream e ObjectOutputStream (l'input del client è collegato all'output del server per intenderci) e trasferisco gli oggetti tramite la writeObject() e li "ricostruisco" con la readObject(). Fin qui tutto bene.
Il problema sta nel fatto di trasferire un oggetto JFrame, o una sua sottoclasse da me implementata o un altro mio oggetto che contenga una JFrame. Questa finestra una volta ricostruita e la rendo visibile, ma le sue "funzionalità" sono ridotte, ovvero che i bottoni (JButton) quando vengono premuti non attivano il relativo ActionListener() al quale erano connessi.
Ho provato sia a creare un ActionListener separato (una classe vera e propria, a parte rispetto all'oggetto in cui ho il pulsante), ma anche a creare una classe interna all'oggetto(come fanno di default parecchi IDE).
// classe esterna (non so se sono stato chiaro quindi posto il codice)
public class MyActionListener implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
// istruzioni da eseguire
}});
}
// classe interna
bottone.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
// istruzioni da eseguire
}});
Premetto che non sto utilizzando i Thread perché non ho molta confidenza con queste classi.
io utilizzo le classi:
- java.net.Socket
- java.net.ServerSocket
Se qualcuno ha già riscontrato il mio problema o sappia come risolverlo mi dia un consiglio.
Gliene sarei molto grato :3
Per ora ringrazio tutti per la futura risposta e spero di essere stato chiaro.