Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2008
    Messaggi
    10

    [JAVA]Associare la pressione di un tasto ad una azione

    Ciao a tutti,
    Chiedo aiuto perchè non riesco a capire come riuscire ad associare l'esecuzione di un metodo alla pressione di un tasto della tastiera.
    Ho tentato con KeyListener ma mi pare di aver capito che per funzionare l'oggetto a cui associo il KeyListener deve avere il focus, io invece vorrei che l'evento funzionasse anche se,ad esempio, l'applicazione è ridotta ad icona e mi trovo nel browser.

    Nel caso specifico sto cercando di cambiare un valore booleano alla pressione di un tasto(CTRL ad esempio).

    Vi ringrazio per l'eventuale aiuto!

  2. #2
    Utente di HTML.it L'avatar di cacao74
    Registrato dal
    Jan 2005
    Messaggi
    2,570
    non credo sia fattibile quanto chiedi, anzi penso sia normale che un KeyListener risponda ad eventi su oggetti che hanno il focus

    quello che chiedi tu, forse di dovrebbe implementare al livello di gestore del desktop del sistema operativo
    slack? smack!

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [JAVA]Associare la pressione di un tasto ad una azione

    Originariamente inviato da Beaviss
    io invece vorrei che l'evento funzionasse anche se,ad esempio, l'applicazione è ridotta ad icona e mi trovo nel browser.
    Non si può. Non in Java "puro" e con il solo uso del framework standard.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2008
    Messaggi
    10
    Grazie per le risposte!
    Se non con Java con quale linguaggio è possibile fare una cosa simile? C?

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Beaviss
    Se non con Java con quale linguaggio è possibile fare una cosa simile? C?
    Qualunque che possa usare le API "native" del sistema. E chiaramente supponendo che il sistema offra le API per poter ad esempio registrare/gestire "hot-key" o ancora più in generale poter ricevere notifica dei tasti a livello "globale" nel sistema (anche se questo è più "delicato" non solo dal punto di vista tecnico). E in Win32 si possono fare entrambe le cose.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    Utente di HTML.it L'avatar di cacao74
    Registrato dal
    Jan 2005
    Messaggi
    2,570
    in aggiunta a quanto detto da andbin ed estendendolo anche alle altre piattaforme (linux, ...) la creazione di una sorta di "keylogger" ti esporrebbe a problemi di sicuretta o comunque di fiducia.
    slack? smack!

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2008
    Messaggi
    10
    Capisco i problemi relativi alla sicurezza, ma per quel che mi riguarda sto solo cercando di prendere maggiore dimestichezza con JAVA e alcune sue librerie, niente di più; ora però l'argomento mi suscita curiosità.
    Per API native si intendono le system calls del SO?

    Giusto per portare un esempio: Fraps è in grado, tramite la pressione di un tasto configurabile dall'utente, di fare screenshot dello schermo e registrazione video. Quali linguaggi consentono di fare ciò?

    Prima ho citato C per il livello più basso di astrazione che ha rispetto a Java.

    Come avrete intuito non sono un grande esperto

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Beaviss
    Per API native si intendono le system calls del SO?
    Sì, secondo come/quanto offerto dal S.O.

    Originariamente inviato da Beaviss
    Quali linguaggi consentono di fare ciò?
    Ripeto che non è tanto questione di "linguaggio" .... ma di possibilità di invocare funzioni di sistema.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2008
    Messaggi
    10
    Ripeto che non è tanto questione di "linguaggio" .... ma di possibilità di invocare funzioni di sistema.
    E in che modo Java potrebbe consentire l'utilizzo di System calls?

  10. #10
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Beaviss
    E in che modo Java potrebbe consentire l'utilizzo di System calls?
    Tramite le specifiche JNI (Java Native Interface) ma devi sfruttarle scrivendo tu una libreria dinamica nativa (DLL su Windows) in un linguaggio C o C++.
    Oppure sfruttando una libreria JNA che ti evita di scrivere tu la DLL perché fa già lei da "ponte" verso librerie dinamiche.

    Nessuna delle due è banalissima (la seconda più semplice, chiaro) ma in ogni caso devi conoscere bene le API del S.O.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.