Corsi on-line
Chiudi
Newsletter:
  • Seguici su Facebook
  • Seguici su Twitter
  • Seguici su Google+
  • Seguici via RSS
  • Seguici col tuo Smartphone

Creare una sveglia con timer con J2ME

Articolo scritto da Antonio Coschignano
Pagina 1 di 4

In quest'articolo costruiremo una piccola applicazione in Java ME (Java Micro Edition) dotata di un timer e di una suoneria in grado di funzionare come una normale sveglia. Quest'applicazione in particolare ci deve consentire di impostare tramite appositi controlli grafici il numero di ore, minuti e secondi, avviare il timer, e allo scadere di quest'ultimo far partire la riproduzione di un file multimediale come suoneria.

Per prima cosa ritengo importante specificare un meccanismo che sia indipendente dall'interfaccia utente (la MIDlet) e che ci permetta di implementare facilmente questo sistema. Introduciamo allora una classe Timer ed un interfaccia che chiameremo Alarm, in grado di modellare il comportamento del timer al di fuori del contesto in cui verrà utilizzato.

L'interfaccia Alarm fornisce due metodi fondamentali, dove nell'implementazione si deve gestire l'aggiornamento del tempo che scade e la riproduzione della suoneria. Ecco l' interfaccia:

public interface Alarm {
    public void refresh(String time);
    public void play();
}
La classe Timer è semplicemente un Thread che partendo da un valore intero, inizia a decrementarlo un secondo alla volta (Thread.sleep()). Essa utilizza un oggetto di tipo Alarm per notificare i cambiamenti del valore del timer ed allo scadere di quest' utlimo richiamare il metodo play():
public class Timer extends Thread {
  private Alarm alarm;
  private int time;
  public Timer(Alarm alarm) {
    this.alarm = alarm;
  }
  public void set(int time) {
    this.time = time;
  }
  public void run() {
    try {
      while(time>0) {
        time--;
        alarm.refresh(toString());
        Thread.sleep(1000);
      }
      alarm.play();
    }
    catch(InterruptedException ex) {}
  }
  public String toString() {
    int sec = time;
    String timeS = "";
    String dp = ":";
    int h = sec/3600;
    int m = (sec-(h*3600))/60;
    sec = sec-(m*60)-(h*3600);;
    if (h<10) timeS+="0"+h+dp;
    else timeS+=h+dp;
    if (m<10) timeS+="0"+m+dp;
    else timeS +=m+dp;
    if (sec<10) timeS+="0"+sec;
    else timeS+=sec;
    return timeS;
  }
}
Il metodo toString(), converte un intero che rappresenta il valore dei secondi, in una stringa tipo hh:mm:ss. Ad esempio se time vale 120 allora il toString() ritornera 00:02:00, cioè due minuti. Questo aspetto ci ritornerà utile fra poco nell'implementazione dell'interfaccia grafica.

L'interfaccia utente
Vediamo adesso come procedere per craere un'interfaccia utente che ci permette di interagire con la sveglia, dando uno sguardo ha le fasi principali nella costruzione dell'intera applicazione. Utilizzeremo per questo scopo due classi:

Queste due classi insieme alla classe Timer e l' interfaccia Alarm vanno inserite in uno stesso package con un nome a vostra scelta. Vediamo nel dettaglio la funzione di ciascune delle due classi.

Corsi
Corso Masterizzare CD e DVDCorso Masterizzare CD e DVD
Guida per masterizzare CD e DVD con programmi freeware. A soli 25 €.
Corso Ruby e Ruby On RailsCorso Ruby e Ruby On Rails
Creare software ed applicazioni Web con Ruby e ROR. A partire da 49 €.
Corso Webmaster AvanzatoCorso Webmaster Avanzato
Diventa un Webmaster professionista. A partire da 39 €.
Vedi anche...
Annunci

Mr.Webmaster

Pubblicità
Chi Siamo
Contattaci
Collabora
Note Legali
© 2003 - 2012 Mr.Webmaster - Il portale dei Webmaster Italiani - Tutti i diritti riservati | Powered by IKIweb Internet Media S.r.l. - PIVA 02848390122