Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    331

    [java] fermare cronometro

    Salve,
    ho realizzato un software con un cronometro che leggendo da un database determinati comandi si avvia e si ferma.... per l'avvio non ho problemi ma quando gli dò il comando timer.stop non si frerma ma se passo questo valore tramite un pulsante si ferma dove sbaglio?
    grazie

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [java] fermare cronometro

    Originariamente inviato da xedy
    ho realizzato un software con un cronometro che leggendo da un database determinati comandi si avvia e si ferma.... per l'avvio non ho problemi ma quando gli dò il comando timer.stop non si frerma ma se passo questo valore tramite un pulsante si ferma dove sbaglio?
    Innanzitutto dovresti precisare quale timer stai usando ... ma credo, quasi sicuramente, che stai parlando del javax.swing.Timer di Swing.

    Poi comunque cosa vuol dire "ma se passo questo valore tramite un pulsante si ferma"??? Intanto stop è un metodo .... non un "valore". E quando invochi tuoTimer.stop() il timer appunto si ferma e non lancia più eventi.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    331
    allora ti spiego:
    il programma leggi continuamente nel db e quando trova il valore tmstart fa partire il cronometro utilizzando il comando timer.start() e il cronometro parte
    mentre se nel db legge il comando tmreset deve fermare il cronometro e azzerarlo e gli dò il comando timer.stop() ma il cronometro non si ferma...
    per provare ho messo un pulsante per far fermare il cronometro e cliccando si ferma ora non capisco perchè

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da xedy
    il programma leggi continuamente nel db e quando trova il valore tmstart fa partire il cronometro utilizzando il comando timer.start() e il cronometro parte
    mentre se nel db legge il comando tmreset deve fermare il cronometro e azzerarlo e gli dò il comando timer.stop() ma il cronometro non si ferma...
    per provare ho messo un pulsante per far fermare il cronometro e cliccando si ferma ora non capisco perchè
    Ma se non spieghi meglio, magari postando del codice, è parecchio difficile anche solo ipotizzare cosa non va e/o cosa stai sbagliando ....

    La lettura del DB in che contesto (e intendo anche dire nel contesto di quale thread) la stai facendo? Cosa fai a seguito dell'evento del timer?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    331
    allora io leggo i dati ne db

    while (rs.next) {

    a = rs.getString("codice");
    idrace = rs.getInt("idrace");

    if(a.compareTo("TMSTART") == 0) {

    startTime = System.currentTimeMillis();
    timer.start();

    else if (a.compareTo("TMRESTART") == 0 ) {

    timer.stop();

    }
    .
    .
    .

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    331
    nell'if entra se mi faccio stampare qualcosa me lo stampo ma di fermare il cronometro non ne vuole sapere...neanche se gli do il comando restart

  7. #7
    Originariamente inviato da xedy
    allora io leggo i dati ne db

    while (rs.next) {

    a = rs.getString("codice");
    idrace = rs.getInt("idrace");

    if(a.compareTo("TMSTART") == 0) {

    startTime = System.currentTimeMillis();
    timer.start();

    else if (a.compareTo("TMRESTART") == 0 ) {

    timer.stop();

    }
    .
    .
    .
    Scusa ma guardando il codice c'è più di una cosa che non quadra.
    Innanzitutto la variabile a dovrebbe essere una stringa e puoi confrontarla più semplicemente usando il metodo equals delle stringhe:

    if (a.equals("TMSTART")) {

    }


    Poi dal codice che hai postato il blocco else if sembra interno al primo if in quanto manca la parentesi graffa di chiusura. Ma si compila il codice ? o manca qualcosa ? Poi nel tuo post precedente hai scritto: "mentre se nel db legge il comando tmreset deve fermare il cronometro " mente l'else if effettua un controllo con la stringa ("TMRESTART").
    Poi maiuscole e minuscole sono differenti. Quindi se, per esempio su db hai Tmrestart oppure tmrestart devi confrontare con:

    a.toUppercase().equals("TMRESTART")

    Poi sarebbe opportuno postare il modo in cui hai dichiarato timer.

    Ciao

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