Torna indietro   Hardware Upgrade Forum > Software > Programmazione

ASUS ROG Kithara: quando HIFIMAN incontra il gaming con driver planari da 100mm
ASUS ROG Kithara: quando HIFIMAN incontra il gaming con driver planari da 100mm
ASUS e HIFIMAN uniscono le forze per creare ROG Kithara, cuffie gaming con driver magnetici planari da 100mm, design open-back e microfono MEMS full-band. Una proposta che ambisce a coniugare fedeltà per audiofili e performance ludiche, disponibili a 319 euro
Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Qrevo Curv 2 Flow è l'ultima novità di casa Roborock per la pulizia di casa: un robot completo, forte di un sistema di lavaggio dei pavimenti basato su rullo che si estende a seguire il profilo delle pareti abbinato ad un potente motore di aspirazione con doppia spazzola laterale
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Abbiamo guidato per diversi giorni la Alpine A290, la prima elettrica del nuovo corso della marca. Non è solo una Renault 5 sotto steroidi, ha una sua identità e vuole farsi guidare
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 19-02-2013, 13:16   #1
dwight93
Senior Member
 
L'Avatar di dwight93
 
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.
dwight93 è offline   Rispondi citando il messaggio o parte di esso
Old 19-02-2013, 14:48   #2
dwight93
Senior Member
 
L'Avatar di dwight93
 
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.
dwight93 è offline   Rispondi citando il messaggio o parte di esso
Old 19-02-2013, 17:35   #3
dwight93
Senior Member
 
L'Avatar di dwight93
 
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.
dwight93 è offline   Rispondi citando il messaggio o parte di esso
Old 19-02-2013, 20:49   #4
dwight93
Senior Member
 
L'Avatar di dwight93
 
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.
dwight93 è offline   Rispondi citando il messaggio o parte di esso
Old 19-02-2013, 21:00   #5
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2787
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.
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 19-02-2013, 22:12   #6
dwight93
Senior Member
 
L'Avatar di dwight93
 
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.
dwight93 è offline   Rispondi citando il messaggio o parte di esso
Old 19-02-2013, 22:23   #7
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2787
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.
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 19-02-2013, 22:49   #8
dwight93
Senior Member
 
L'Avatar di dwight93
 
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.
dwight93 è offline   Rispondi citando il messaggio o parte di esso
Old 20-02-2013, 09:13   #9
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2787
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);
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 20-02-2013, 20:33   #10
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2787
Aggiungo che su Swing puoi leggere l'ottima guida di PGI-Bis:
http://www.hwupgrade.it/forum/showthread.php?t=2005654
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 21-02-2013, 18:58   #11
dwight93
Senior Member
 
L'Avatar di dwight93
 
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.
dwight93 è offline   Rispondi citando il messaggio o parte di esso
Old 21-02-2013, 19:05   #12
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2787
Qual è l'operazione che dovresti ripetere con un ciclo for?
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 21-02-2013, 21:40   #13
dwight93
Senior Member
 
L'Avatar di dwight93
 
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.
dwight93 è offline   Rispondi citando il messaggio o parte di esso
Old 21-02-2013, 22:29   #14
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2787
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
			}
Il Timer si premura di sollevare l'evento ogni tot secondi. Nel codice di esempio ogni 1 secondo.
Codice:
		int delay = 1000; //milliseconds
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 21-02-2013, 22:44   #15
dwight93
Senior Member
 
L'Avatar di dwight93
 
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.
dwight93 è offline   Rispondi citando il messaggio o parte di esso
Old 21-02-2013, 22:57   #16
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2787
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.
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 21-02-2013, 23:04   #17
dwight93
Senior Member
 
L'Avatar di dwight93
 
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.
dwight93 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


ASUS ROG Kithara: quando HIFIMAN incontra il gaming con driver planari da 100mm ASUS ROG Kithara: quando HIFIMAN incontra il gam...
Roborock Qrevo Curv 2 Flow: ora lava con un rullo Roborock Qrevo Curv 2 Flow: ora lava con un rull...
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite Alpine A290 alla prova: un'auto bella che ti fa ...
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile Recensione HONOR Magic 8 Lite: lo smartphone ind...
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora Sony WF-1000X M6: le cuffie in-ear di riferiment...
AMD Ryzen AI 400 su desktop: NPU da 60 T...
Ce ne sono a decine su Amazon ma questo ...
Leica Leitzphone: la collaborazione con ...
Il telescopio spaziale Hubble, Euclid e ...
Il telescopio spaziale James Webb ha oss...
Mike Fincke era l'astronauta di Crew-11 ...
WhatsApp colma una sua lacuna: stanno pe...
Panasonic LUMIX DMW-DMS1: il nuovo micro...
Samsung preferisce vendere ad altri le s...
OpenAI vince contro xAI (per ora): l'azi...
Electronic Arts domina la classifica dei...
Micron annuncia le GDDR7 da 3 GB fino a ...
Tempi di intrusione ulteriormente ridott...
Smartwatch: il mercato cresce, Apple si ...
Stellaris sarà la prima centrale ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 08:20.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v