Visualizzazione dei risultati da 1 a 9 su 9

Discussione: [JAVA] Generare evento

  1. #1

    [JAVA] Generare evento

    salve a tutti,
    nel programma che dovrei fare ho 2 classi: chiamiamole Gestore A e GestoreB.

    Il GestoreB ogni tanto dovrebbe generare degli eventi (questo almeno in visual basic si chiamavano cosė) ovvero ad esempio ogni volta che sono le 10.00 della mattina dovrebbe generare questa specie di evento. Il GestoreA se ne dovrebbe accorgere...

    da quello che so io dovrebbe essere una cosa del genere:

    Il GestoreA dovrebbe essere una specie di Listener e dovrebbe stare in ascolto sul GestoreB, ogni volta che sono le 10.00 il GestoreB se ne accorge e se ne dovrebbe accorgere anche il GestoreA (visto che č in ascolto sul GestoreB)

    ora questa č la teoria...per la pratica lascio a voi!

    Grazie.
    Let's your dream came true!

  2. #2
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    uno dei gestori potrebbe essere un thread che resta in attesa un giorno e quando si attiva genera un qualcosa
    una cosa che devi fare č sincronizzare il thread in modo che esegua alle 10
    non e' difficile

  3. #3
    il problema non č quello...

    adesso ti spiego un po meglio...

    il GestoreB in realtā non si deve attivare soltanto alle 10.00 di ogni giorni ma metti che si deve attivare per una serie di date ed ore che (per esempio e per comoditā) sta in una tabella di un DB...

    ammesso che mi sono giā ottenuto l'elenco delle date ed ore in cui mi devo attivare come faccio a dire al GestoreB "guarda č il giorno XX.XX.XXXX e sono le ore YY:YY quindi ti devi accorgere" e nel frattempo il GestoreA che č in ascolto sul GestoreB si accorge ad allora ad esempio manda un MessageBox...

    non so se ora mi sono spiegato meglio...

    sarebbe utile ad esempio anche materiale a riguardo, esempi, tutorial, etc

    grazie dell'aiuto
    Let's your dream came true!

  4. #4
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    fai un thread che "dorme" 1 minuto e controlla se deve fare qualcosa - versione facile

    sono le 10:10 e sai che alle 10:16 devi scatenare qualcosa, fai dormire il thread 6 minuti, poi fai le azioni
    dopo sai che devi scatenare altre robe alle 12:20, fai dormire per 2 ore e 4 minuti e fai quello che devi - versione difficile in questo caso devi considerare che se la prima esecuzione ci mette 1 secondo, non puoi far dormire per 2h4m ma 2h3m59s

  5. #5
    perfetto....

    come funzionamento ci sono...

    ora..

    hai degli esempi??? codice??? tutorial??? etc...

    grazie...
    Let's your dream came true!

  6. #6
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    codice:
    Vector<Calendar> allarmi; // il vettore di date
    public void run() {
      for (int i=0; i<allarmi.size(); i++) {
        Calendar prossimo = allarmi.elementAt(i);
        try {
          // metto in attesa
          long adesso = new Date().getTime();
          sleep(prossimo.getTimeInMillis() - adesso);
          VAI();
          // sposto l'allarme a domani
          prossimo.add(Calendar.DAY_OF_YEAR, 1);
        }
        catch (InterruptedException iex) {
        }
        // controllo se sono arrivato alla fine
        if (i == allarmi.size()-1)
          i = 0;
      }
    }
    dovrebbe funzionare

  7. #7
    una cosa solo...

    non avevo mai visto questo...
    codice:
    Vector<Calendar> allarmi;
    praticamente serve a fare un Vector contenente soltanto elementi della classe Calendar...giusto???

    quali sono i vantaggi dal non mettere Calendar???

    grazie.
    Let's your dream came true!

  8. #8
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    I vantaggi stanno nel fatto che non sei piu obbligato a fare il cast sui valori prelevati dal Vector perche questi saranno visti automaticamente come Calendar; inoltre a tempo di compilazione il compilatore puō verificare se nel Vector aggiungi un Calendar o meno, generando un errore in caso contrario, mentre se usi un Vector generico puoi metterci dentro qualsiasi Object, e quindi non hai un controllo da parte del compilatore.

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  9. #9
    benissimo...
    Let's your dream came true!

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 © 2025 vBulletin Solutions, Inc. All rights reserved.