Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    115

    [java] Gestione degli eventi

    Salve a tutti, cercherò di spiegarvi il problema (complesso) al mio meglio.

    In pratica sto realizzando un'applicazione di chat e ho creato sommariamente 3 classi, il server, il client e una classe che gestisce la finestra grafica che viene mostrata all'utente della chat.
    Il mio problema è questo:

    l'utente inserisce il testo in un campo TextField della finestra e preme Invio o un tasto per inviarlo alla chat;
    come faccio presso la classe client ad accorgermi dell'evento (che ho gestito presso la finestra) e registrare il testo visto che è un thread del client ad inviarlo al server???

    Scusatemi se sono stato poco chiaro, ma vi serve il vostro aiuto: per qualunque altra spiegazione sarò lieto di darvela.

    GRAZIE.

  2. #2
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491
    SE ho capito il problema puoi fare così:
    1)passi all'interfaccia grafica l'oggetto client in modo che quando accorre l'evento glielo possa notificare attraverso un apposito metodo (tipo client.notifica())
    2)passi al client l'oggetto interfaccia e ogni tot secondi il client richiede all'interfaccia se è accaduto qualcosa
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    115
    Col termine "passare" tu intendi istanziare un nuovo oggetto di tipo client o interfaccia???

  4. #4
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491
    Dipende da come hai strutturato il programma....puoi fare in vari modi:
    1)Instanzi Client direttamente in Interfaccia
    2)Instanzi Client e Interfaccia nel main, ma nel costruttore di Interfaccia inserisci il passaggio di Client, per spiegarmi meglio così:
    codice:
    public class Interfaccia....{
    
      Client client;
    
        public Interfaccia(Client c){
          client = c;
          /*.....*/
        }
    }
    Spero di essere sato chiaro.
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    115
    si perchè sono riuscito ad ottenere quello che volevo, grazie mille!!!

  6. #6
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491
    Bene, di nulla
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    115
    Come Xadoom mi ha consigliato, l'interfaccia richiama una funzione notifica() che pone a true una variabile del client quando l'utente preme il bottone Invio e di conseguenza il campo testo viene estratto.
    Come faccio però a riferirmi a quel client e non a tutti i client:
    ho provato a passare al costruttore dell'interfaccia all'interno del client this per riferirmi a quel client, per capirci:

    codice:
    public class client
    {
    ....
    static boolean avverti = false;
    public static void main(String args[])
    {
     Interfaccia int = new Interfaccia(this);
     .....
    }
    ....
    public void notifica() // che viene richiamata dall'interfaccia
    {
    avverti=true;
    }
    ...
    }
    ma non posso mettere in un contesto statico(il main) this.

    Come posso risolvere il problema??

  8. #8
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491
    Così:
    codice:
    public class client
    {
    ....
    static boolean avverti = false;
    public static void main(String args[])
    {
     Client c = new Client();
     Interfaccia int = new Interfaccia(c);
     .....
    }
    ....
    public void notifica() // che viene richiamata dall'interfaccia
    {
    avverti=true;
    }
    ...
    }
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.