Salve a tutti!
Vorrei fare un semplice programma in java,che chiede la stringa da inserire all'utente,e poi dopo tot secondi,la scrive attraverso la tastiera e preme invio.
So che è possibile farlo,ma con che metodi?
grazie
Salve a tutti!
Vorrei fare un semplice programma in java,che chiede la stringa da inserire all'utente,e poi dopo tot secondi,la scrive attraverso la tastiera e preme invio.
So che è possibile farlo,ma con che metodi?
grazie
Alt ... che vuol dire "la scrive attraverso la tastiera"??? Che "simuli" la pressione dei tasti? All'interno della tua stessa applicazione Java o, in generale, del sistema??? Per quest'ultimo caso vedi keyPress()/keyRelease() di java.awt.Robot.Originariamente inviato da konqueror
Vorrei fare un semplice programma in java,che chiede la stringa da inserire all'utente,e poi dopo tot secondi,la scrive attraverso la tastiera e preme invio.
Altrimenti spiega meglio cosa intendi fare.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Ciao Andbin!
SI effettivamente volevo dire quello che hai inteso,e sono i metodi che mi servono.
Però siccome il parametro non è affatto una stringa ma un intero,non so come posso passargli la stringa come argomento.
Cioè dovrei convertire ogni carattere della stringa e invocare il metodo keypress per n caratteri?
Potresti consigliarmi un modo più rapido per stampare a video la stringa?
grazie
Innanzitutto dovresti spiegare meglio perché vuoi fare una cosa del genere ... insomma, quale è il tuo obiettivo finale??Originariamente inviato da konqueror
SI effettivamente volevo dire quello che hai inteso,e sono i metodi che mi servono.
Sì, keyPress seguito da keyRelease per ogni carattere. Con qualche complicanza in più: i codici VK_xxx non rappresentano tutti i caratteri ad esempio non c'è maiuscolo/minuscolo, dovresti essere tu a "simulare" lo shift e cose del genere!!!Originariamente inviato da konqueror
Però siccome il parametro non è affatto una stringa ma un intero,non so come posso passargli la stringa come argomento.
Cioè dovrei convertire ogni carattere della stringa e invocare il metodo keypress per n caratteri?
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Vorrei creare un semplice programma che chiede all'utente di inserire una stringa,e poi questa stringa viene scritta a video dopo tot secondi (attraverso un thread.sleep).
Ad esempio questo codice,dopo due secondi dovrebbe scrivere per 100 volte un carattere,che non so nemmeno qual è.Dopo due secondi mi sono già posizionato col cursore su un'altra finestra,ma non vedo scrivere niente.Come mai?
codice:import java.awt.AWTException; import java.awt.Robot; public class Key { public static void main(String[] args) throws AWTException, InterruptedException { Robot rob = new Robot(); Thread.sleep(2000); for (int i=0;i<100;i++) { rob.keyPress(98); rob.keyRelease(98); } } }
Se quello che vuoi è questo, cioè poter "iniettare" la pressione dei tasti in una qualunque finestra (anche non della tua applicazione java), allora non ci sono altre strade (più semplici) rispetto a Robot.Originariamente inviato da konqueror
Dopo due secondi mi sono già posizionato col cursore su un'altra finestra
98 è il valore della costante KeyEvent. VK_NUMPAD2 che chiaramente immagino non è quello che volevi!Originariamente inviato da konqueror
rob.keyPress(98);
rob.keyRelease(98);
Vorrei che ti fosse chiaro che quel codice non è un codice ASCII puro ... è un key code di quelli indicati nella documentazione di KeyEvent ad esempio VK_A, VK_DOWN, ecc...
Alcuni di questi key code, per comodità, hanno lo stesso codice del ASCII (i digit e le lettere). Altri no, sono totalmente diversi e con altri significati. Ecco perché non è banale iniettare una qualunque stringa!!!
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Domanda: ma essendo un char in realtà un intero, non puoi scorrere la stringa carattere per carattere (metodo charAt(int index)) e passare il carattere prelevato ai due metodi?
Al mio segnale... scatenate l'inferno!