Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    83

    Timer

    Non so come creare eventi di temporizzazione, ho letto un pò dalla rete ma gli esempi che mi si presentano sono un pò complessi ne tantomeno voglio fare una enorme procedura per mettere solo un temporizzatore!

    Chi mi può fornire un facilissimo codice per stampare dopo 3 secondi la scritta "Hello World"???

    Grazie!
    #include <pgnvni.h>

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    72
    codice:
    public class Test {
    	public static void main(String[] args)throws Exception {
    		  Thread.sleep(3000);
    		  System.out.println("Hello world");
    	}
    
    }
    Ma non credo sia quello che volevi...

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463

    Moderazione

    Timer
    Suggerisco l'uso di titoli più significativi in futuro: non si paga a numero di caratteri.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    83
    Allora non centra l'interfaccia ActionListener???

    Il mio libro faceva un esempio ma io l'ho semplificato rendendolo così, il codice compilava e il metodo main non mi dava alcuna eccezzione ma non partiva il temporizzatore:


    import java.awt.event.*;
    import javax.swing.Timer;

    class Test implements ActionListener
    {

    public static void main(String[] args)
    {
    Timer t = new Timer( 2000,new Test() );
    t.start();
    }

    public void actionPerformed(ActionEvent event){ System.out.println("Hello World"); }

    }

    bo...
    #include <pgnvni.h>

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    72
    La classe che usi (Timer di swing) vive esclusivamente se vi è un Thread vivo , infatti se noi ne creiamo uno e lo lanciamo la tua classe funziona:


    codice:
    import java.awt.event.*;
    import javax.swing.Timer;
    
    class Test implements ActionListener{
    	
    	public static void main(String[] args){
    		MioThread threadSempreAttivo=new MioThread();
    		threadSempreAttivo.start();
    		Timer t = new Timer( 2000,new Test() );
    		t.start();
    	}
    	
    	public void actionPerformed(ActionEvent event){ System.out.println("Hello World"); }
    	
    }
    
    class MioThread extends Thread{
    	public void run(){
    		try {
    			while(true){
    				Thread.sleep(1000);	
    			}
    		} catch (InterruptedException e) {
    			e.printStackTrace();
    		}
    	}
    }
    Eseguendo il codice scritto sopra come vedi funziona (non rappresenta la soluzione sia chiaro mi serve solo per farti capire, la soluzione sarà l'uso della classe di cui ti parlo poco più sotto) .

    Altrimenti puoi creare una GUI (anche banale) e visualizzarla , il suo thread grafico è sufficiente a mantenere vivo il tuo timer:
    codice:
    class Test implements ActionListener{
    	
    	public static void main(String[] args){
    		JFrame frame=new JFrame();
    		frame.show();
    		Timer t = new Timer( 2000,new Test() );
    		t.start();
    	}
    	
    	public void actionPerformed(ActionEvent event){ System.out.println("Hello World"); }
    	
    }
    Ma questi sono solo esempi.

    Se tu vuoi invece creare una applicazione non grafica (“console”) devi usare la classe Timer del package java.util.

    Usi il suo costruttore vuoto.
    Estendi poi una classe TimerTask e riscrivi il suo metodo run all’interno del quale metti l’azione da compiere (in fondo è la stessa cosa di quando implementavi ActionListener e riscrivevi actionPerformed…) dopodiché chiami il metodo schedule che come argomenti vuole l’istanza di TimerTask , il ritardo ed ogni quanto deve chiamre run.
    Per far partire il timer chiami start().

    Questo timer apre un suo Thread e vive da solo.

    codice:
    import java.util.Timer;
    import java.util.TimerTask;
    import java.awt.event.*;
    import javax.swing.*;
    
    class Test{
    	
    	public static void main(String[] args){
    		
    		 Timer timer=new Timer();
    		 timer.schedule(new Task(),0,1000);//parti subito e itera ogni secondo
    	}
    	
    }
    
    class Task extends TimerTask{
    	public void run(){
    		System.out.println("Hello");
    	}
    }

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    83
    Grazie mille per la tua ottima e dettagliata descrizione... Devo solo completare a leggere il mio libro di Java(sono alle interfacce e sto da 4 giorni fermo sui Timer)

    Mi potresti consigliare un buon libro di Java? Soprattutto facile nelle spiegazioni e abbastanza chiaro... Il mio non lo è

    #include <pgnvni.h>

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    72
    non è proprio a buon mercato però...a me è piaciuto.

    http://www.genux.com/scheda.asp?idpr...DAMENTI%202/ED

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.