| 	
	
	
		
		|||||||
  | 
		
| 
 | 
![]()  | 
	
	
| 
		 | 
	Strumenti | 
| 		
			
			 | 
		#1 | 
| 
			
			
			
			 Senior Member 
			
		
			
				
			
			
			Iscritto dal: Mar 2012 
				Città: Zurigo 
				
				
					Messaggi: 393
				 
				
				
				
				 | 
	
	
	
	
		
			
			 
				
				Progetto Java - Minuti e Secondi
			 
			
		Salve a tutti, per informatica io e un mio amico abbiamo deciso di creare la nostra versione del gioco dual n-back: 
		
	
		
		
		
		
			http://dual-n-back.com/ La mia domanda è come posso programmare un metodo che duri un certo numero di minuti? È possibile? Inoltre quando uso il metodo wait o thread.sleep, come mai questi due vengono sempre eseguiti per primi anche se li metto alla fine del codice? 
				__________________ 
		
		
		
		
	
	CPU: AMD FX-8150, Scheda madre: Asus Crosshair V Formula Dissipatore: Antec H2O 920, RAM: Corsair Vengeance 16 GB 1866mhz Scheda video: XFX HD 7970, Alimentatore: Seasonic M12II-750, SSD: Corsair Force3 120GB, Case: IN WIN Maelstrom Big Tower.  | 
| 
		
 | 
	
	
	
		
		
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#2 | 
| 
			
			
			
			 Senior Member 
			
		
			
				
			
			
			Iscritto dal: Mar 2012 
				Città: Zurigo 
				
				
					Messaggi: 393
				 
				
				
				
				 | 
	
	
	
	
		
		
		
		 
		ok forse credo di aver trovato la soluzione, usando il timer della classe java.util.Timer o javax.swing.Timer. Al momento sto cercando di implementare il timer affinché si avvi quando un bottone viene premuto. Consigli?
		 
		
	
		
		
		
		
			
				__________________ 
		
		
		
		
	
	CPU: AMD FX-8150, Scheda madre: Asus Crosshair V Formula Dissipatore: Antec H2O 920, RAM: Corsair Vengeance 16 GB 1866mhz Scheda video: XFX HD 7970, Alimentatore: Seasonic M12II-750, SSD: Corsair Force3 120GB, Case: IN WIN Maelstrom Big Tower.  | 
| 
		
 | 
	
	
	
		
		
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#3 | 
| 
			
			
			
			 Senior Member 
			
		
			
				
			
			
			Iscritto dal: Mar 2012 
				Città: Zurigo 
				
				
					Messaggi: 393
				 
				
				
				
				 | 
	
	
	
	
		
		
		
		 
		up.
		 
		
	
		
		
		
		
			
				__________________ 
		
		
		
		
	
	CPU: AMD FX-8150, Scheda madre: Asus Crosshair V Formula Dissipatore: Antec H2O 920, RAM: Corsair Vengeance 16 GB 1866mhz Scheda video: XFX HD 7970, Alimentatore: Seasonic M12II-750, SSD: Corsair Force3 120GB, Case: IN WIN Maelstrom Big Tower.  | 
| 
		
 | 
	
	
	
		
		
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#4 | 
| 
			
			
			
			 Senior Member 
			
		
			
				
			
			
			Iscritto dal: Mar 2012 
				Città: Zurigo 
				
				
					Messaggi: 393
				 
				
				
				
				 | 
	
	
	
	
		
		
		
		 
		Nessuno mi sa aiutare? Ok rispiego il problema. L'interfaccia grafica per ora è molto semplice, ci sono 9 JLabel e un bottone. Quando il bottone viene premuto uno dei 9 JLabel viene colorato. Qui è il problema, come faccio ad implementare un timer che faccia rimanere il JLabel colorato per 3 secondi?
		 
		
	
		
		
		
		
			
				__________________ 
		
		
		
		
	
	CPU: AMD FX-8150, Scheda madre: Asus Crosshair V Formula Dissipatore: Antec H2O 920, RAM: Corsair Vengeance 16 GB 1866mhz Scheda video: XFX HD 7970, Alimentatore: Seasonic M12II-750, SSD: Corsair Force3 120GB, Case: IN WIN Maelstrom Big Tower.  | 
| 
		
 | 
	
	
	
		
		
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#5 | 
| 
			
			
			
			 Senior Member 
			
		
			
			
			Iscritto dal: Nov 2005 
				
				
				
					Messaggi: 2780
				 
				
				
				
				 | 
	
	
	
	
		
		
		
		 
		Usare Timer è una buona idea: 
		
	
		
		
		
		
		
	
	http://docs.oracle.com/javase/6/docs...ing/Timer.html Registri un ActionListener per il bottone, nel metodo actionPerformed disattivi il bottone, colori la label e fai partire il Timer a cui avrai associato un altro ActionListener che decolora la label e riattiva il bottone. Unica nota, devi dire al Timer di scatenare l'evento una volta sola con il metodo setRepeats. Comunque è scritto anche nella documentazione.  | 
| 
		
 | 
	
	
	
		
		
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#6 | 
| 
			
			
			
			 Senior Member 
			
		
			
				
			
			
			Iscritto dal: Mar 2012 
				Città: Zurigo 
				
				
					Messaggi: 393
				 
				
				
				
				 | 
	
	
	
	
		
		
		
		 
		Grazie per la risposta, ma per precisare il bottone deve essere premuto una sola volta e tutto dovrebbe eseguito in modo automatico:  
		
	
		
		
		
		
			- Premo bottone Start. - Primo Label viene colorato e rimane colorato per 3 secondi e dopo ridiventa invisibile. - Secondo Label viene colorato e rimane colorato per 3 secondi e dopo ridiventa invisibile. - E così via. 
				__________________ 
		
		
		
		
	
	CPU: AMD FX-8150, Scheda madre: Asus Crosshair V Formula Dissipatore: Antec H2O 920, RAM: Corsair Vengeance 16 GB 1866mhz Scheda video: XFX HD 7970, Alimentatore: Seasonic M12II-750, SSD: Corsair Force3 120GB, Case: IN WIN Maelstrom Big Tower.  | 
| 
		
 | 
	
	
	
		
		
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#7 | 
| 
			
			
			
			 Senior Member 
			
		
			
			
			Iscritto dal: Nov 2005 
				
				
				
					Messaggi: 2780
				 
				
				
				
				 | 
	
	
	
	
		
		
		
		 
		Scusa ma non ho letto il funzionamento del gioco... 
		
	
		
		
		
		
		
	
	Se è come dici allora non usare il metodo setRepeats e ogni volta che viene scatenato l'evento del Timer spegni la label accesa e ne accendi un'altra, senza riattivare il bottone. Quando vuoi fermare il timer basta richiamare il metodo stop.  | 
| 
		
 | 
	
	
	
		
		
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#8 | 
| 
			
			
			
			 Senior Member 
			
		
			
				
			
			
			Iscritto dal: Mar 2012 
				Città: Zurigo 
				
				
					Messaggi: 393
				 
				
				
				
				 | 
	
	
	
	
		
		
		
		 
		Grazie ancora per la risposta, infatti avevo l'impressione che il metodo setRepeats non mi sarebbe servito. Comunque quando creo il timer nei parametri devo inserire quanti secondi voglio e un actionlistener. Quale actionlistener gli passo? Scusa ma sono ancora alle prime armi soprattutto con swing. Potresti farmelo vedere brevemente usando un jbutton?
		 
		
	
		
		
		
		
			
				__________________ 
		
		
		
		
	
	CPU: AMD FX-8150, Scheda madre: Asus Crosshair V Formula Dissipatore: Antec H2O 920, RAM: Corsair Vengeance 16 GB 1866mhz Scheda video: XFX HD 7970, Alimentatore: Seasonic M12II-750, SSD: Corsair Force3 120GB, Case: IN WIN Maelstrom Big Tower.  | 
| 
		
 | 
	
	
	
		
		
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#9 | 
| 
			
			
			
			 Senior Member 
			
		
			
			
			Iscritto dal: Nov 2005 
				
				
				
					Messaggi: 2780
				 
				
				
				
				 | 
	
	
	
	
		
		
		
		 
		Una cosa del genere: 
		
	
		
		
		
		
		
	
	Codice: 
	ActionListener buttonListener = new ActionListener() {
	public void actionPerformed(ActionEvent evt) {
		button.setEnabled(false);
		... //Colori la prima label
		int delay = 1000; //milliseconds
		ActionListener taskPerformer = new ActionListener() {
			... //Mantieni un riferimento alla label attiva
			public void actionPerformed(ActionEvent evt) {
				... //Decolori la label attiva e ne colori un'altra
				... //Quando vuoi terminare stoppi il timer e riattivi il bottone
			}
		};
		new Timer(delay, taskPerformer).start();
	}
};
button.addActionListener(buttonListener);
 | 
| 
		
 | 
	
	
	
		
		
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#10 | 
| 
			
			
			
			 Senior Member 
			
		
			
			
			Iscritto dal: Nov 2005 
				
				
				
					Messaggi: 2780
				 
				
				
				
				 | 
	
	
	
	
		
		
		
		 
		Aggiungo che su Swing puoi leggere l'ottima guida di PGI-Bis: 
		
	
		
		
		
		
		
	
	http://www.hwupgrade.it/forum/showthread.php?t=2005654  | 
| 
		
 | 
	
	
	
		
		
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#11 | 
| 
			
			
			
			 Senior Member 
			
		
			
				
			
			
			Iscritto dal: Mar 2012 
				Città: Zurigo 
				
				
					Messaggi: 393
				 
				
				
				
				 | 
	
	
	
	
		
		
		
		 
		Grazie mille adesso funziona. Ma ho ancora una domanda come faccio a inserire tutto in un ciclo for? Ci sto provando da un po', però ho si colorano tutti di un colore e poi si decolorano tutti nello stesso momento, quando invece dovrebbe essere una alla volta.
		 
		
	
		
		
		
		
			
				__________________ 
		
		
		
		
	
	CPU: AMD FX-8150, Scheda madre: Asus Crosshair V Formula Dissipatore: Antec H2O 920, RAM: Corsair Vengeance 16 GB 1866mhz Scheda video: XFX HD 7970, Alimentatore: Seasonic M12II-750, SSD: Corsair Force3 120GB, Case: IN WIN Maelstrom Big Tower.  | 
| 
		
 | 
	
	
	
		
		
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#12 | 
| 
			
			
			
			 Senior Member 
			
		
			
			
			Iscritto dal: Nov 2005 
				
				
				
					Messaggi: 2780
				 
				
				
				
				 | 
	
	
	
	
		
		
		
		 
		Qual è l'operazione che dovresti ripetere con un ciclo for?
		 
		
	
		
		
		
		
		
	
	 | 
| 
		
 | 
	
	
	
		
		
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#13 | 
| 
			
			
			
			 Senior Member 
			
		
			
				
			
			
			Iscritto dal: Mar 2012 
				Città: Zurigo 
				
				
					Messaggi: 393
				 
				
				
				
				 | 
	
	
	
	
		
		
		
		 
		La colorazione e decolorazione dei label.
		 
		
	
		
		
		
		
			
				__________________ 
		
		
		
		
	
	CPU: AMD FX-8150, Scheda madre: Asus Crosshair V Formula Dissipatore: Antec H2O 920, RAM: Corsair Vengeance 16 GB 1866mhz Scheda video: XFX HD 7970, Alimentatore: Seasonic M12II-750, SSD: Corsair Force3 120GB, Case: IN WIN Maelstrom Big Tower.  | 
| 
		
 | 
	
	
	
		
		
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#14 | 
| 
			
			
			
			 Senior Member 
			
		
			
			
			Iscritto dal: Nov 2005 
				
				
				
					Messaggi: 2780
				 
				
				
				
				 | 
	
	
	
	
		
		
		
		 
		Quello è compito dell'ActionListener del Timer. 
		
	
		
		
		
		
		
	
	Codice: 
				public void actionPerformed(ActionEvent evt) {
				... //Decolori la label attiva e ne colori un'altra
				... //Quando vuoi terminare stoppi il timer e riattivi il bottone
			}
Codice: 
	int delay = 1000; //milliseconds  | 
| 
		
 | 
	
	
	
		
		
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#15 | 
| 
			
			
			
			 Senior Member 
			
		
			
				
			
			
			Iscritto dal: Mar 2012 
				Città: Zurigo 
				
				
					Messaggi: 393
				 
				
				
				
				 | 
	
	
	
	
		
		
		
		 
		sì ma le label sono nove, quindi mi serve un ciclo for.
		 
		
	
		
		
		
		
			
				__________________ 
		
		
		
		
	
	CPU: AMD FX-8150, Scheda madre: Asus Crosshair V Formula Dissipatore: Antec H2O 920, RAM: Corsair Vengeance 16 GB 1866mhz Scheda video: XFX HD 7970, Alimentatore: Seasonic M12II-750, SSD: Corsair Force3 120GB, Case: IN WIN Maelstrom Big Tower.  | 
| 
		
 | 
	
	
	
		
		
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#16 | 
| 
			
			
			
			 Senior Member 
			
		
			
			
			Iscritto dal: Nov 2005 
				
				
				
					Messaggi: 2780
				 
				
				
				
				 | 
	
	
	
	
		
		
		
		 
		Guarda, io non ho capito esattamente quello che devi fare. 
		
	
		
		
		
		
		
	
	Quello che ho capito è che ogni tot secondi devi spegnere una label ed accenderne un altra. Per far questo non ti serve un ciclo for perché ogni qualvolta viene sollevato l'evento del timer puoi spegnere la label attiva e accenderne un'altra. Se c'è una logica particolare nell'accendere e spegnere le label non l'ho capito. Se conosci la sequenza a priori potresti mettere le label in una pila prima di far partire il timer e poi, nel timer, sfilarle mano a mano che le accendi/spegni.  | 
| 
		
 | 
	
	
	
		
		
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#17 | 
| 
			
			
			
			 Senior Member 
			
		
			
				
			
			
			Iscritto dal: Mar 2012 
				Città: Zurigo 
				
				
					Messaggi: 393
				 
				
				
				
				 | 
	
	
	
	
		
		
		
		 
		ok credo di aver capito.
		 
		
	
		
		
		
		
			
				__________________ 
		
		
		
		
	
	CPU: AMD FX-8150, Scheda madre: Asus Crosshair V Formula Dissipatore: Antec H2O 920, RAM: Corsair Vengeance 16 GB 1866mhz Scheda video: XFX HD 7970, Alimentatore: Seasonic M12II-750, SSD: Corsair Force3 120GB, Case: IN WIN Maelstrom Big Tower.  | 
| 
		
 | 
	
	
	
		
		
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
		
		  
	   | 
| Strumenti | |
		
  | 
	
		
  | 
Tutti gli orari sono GMT +1. Ora sono le: 02:51.









		
		
		

 
 







