PDA

Visualizza la versione completa : [JAVA] Tastierino numerico con caratteri


pepe
21-10-2005, 18:51
Ciao a tutti...
sto provando ad implementare un tastierino numerico(tipo quello di un cellulare) che mi permetta di inserire oltre che i numeri, anche i caratteri.
L'unica soluzione che mi viene in mente finora questa:
mi creo una class Tastierino e mi dichiaro una matrice

char tasto[][]=new char[numeroTasti][numeroCaratteri];

dove numeroTasti appunto il numero di tasti(12)e numeroCaratteri il numero di comandi assegnati a ciascun tasto(7 o 8...); del tipo:

tasto[1][0]='1';
tasto[1][1]='a';
tasto[1][5]='B';

!!!una faticaccia!!!

quindi mi faccio restituire il tasto corrente con un metodo getCarattere(nTasto, nCarattere)....
dove nTasto il tasto premuto e
nCarattere il numero di volte che clicco su quel tasto

A parteil fatto che ancora non sono sicuro di riuscire a farla funzionare con interfaccia grafica... qualcuno saprebbe suggerirmi una soluzione migliore, o se esiste qualche libreria che potrebbe aiutarmi?

Grazie anticipatamente.

Andrea1979
21-10-2005, 19:25
personalmente farei l'array monodimensionale e passerei una stringa con tutti i caratteri associati a quel tasto. Poi nel actionPerformed registrerei il tempo di sistema alla pressione del tasto e una variabile int inizializzata ad 1 (ossia il tasto stato premuto una volta): se prima di un tempo prestabilito arriva una seconda pressione dello stesso tasto incrementerei quella variabile intera di 1 e ricomincerei il conto del tempo trascorso dalla pressione. Se passa il tempo prestabilito affinch sia considerata conclusa l'azione su quel tasto oppure arriva la pressione di un tasto diverso, restituirei il carattere nella stringa associata alla posizione

(numero_di_pressioni-1) mod lunghezza_stringa_associata

Saluti

pepe
21-10-2005, 19:40
Grazie!! molto pi logico l'array monodimensionale.... Per registrare il tempo del sistema devo utilizzare la classe TimerTask o esiste qualche metodo che me lo gestisce automaticamente...
Se esiste (lo spero), potresti indicarmelo?

Gentilissimo!

Andrea1979
22-10-2005, 01:31
System.currentTimeMillis() restituisce un long con il tempo di sistema espresso in millisecondi.

pepe
23-10-2005, 12:38
non riesco a a capire come utilizzare System.currentTimeMillis()... a me, pi che il tempo di sistema mi servirebbe un metodo che trascorso un lasso di tempo senza effettuare altre pressioni sul bottone mi invochi il mio metodo getCarattere(nTasto, nPressioni), conoscete qualche metodo che mi permette di eseguire questa operazione oppure devo crearmi un Timer di java.util?
Potrebbe aiutarmi qualcun altro oltre Andrea1979 che finora mi stato di grande aiuto?

Grazie per l'interesse.

Loading