Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [swing] premere un JButton con un tasto della tastiera

    Come posso mappare un tasto qualsiasi della tastiera con un jbutton.

    quello che voglio ottenere è che quando premo il tasto il jbutton appare premuto, e
    quando lo rilascio il jbutton viene rilasciato.
    con il metodo doClick() ad esempio ottengo solo che. alla pressione del tasto, il
    JButton viene premuto e subito rilasciato


    grazie
    MB

  2. #2
    il metoo doClick() lo intendo ovviamente lanciato nel metodo keyPressed di un keyListener

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

    Re: [swing] premere un JButton con un tasto della tastiera

    Originariamente inviato da Mr.Bloom
    Come posso mappare un tasto qualsiasi della tastiera con un jbutton.

    quello che voglio ottenere è che quando premo il tasto il jbutton appare premuto, e
    quando lo rilascio il jbutton viene rilasciato.
    Dipende da dove deve essere il "focus". Se il tasto deve avere effetto solo se il focus è sul pulsante, oppure se deve avere effetto se il focus è su un qualunque componente nella finestra. Sono due cose differenti, anche se a livello di codice cambia davvero poco:

    codice:
    InputMap im = tuoPulsante.getInputMap(JComponent.WHEN_FOCUSED);
    
    im.put(KeyStroke.getKeyStroke(KeyEvent.VK_X, 0, false), "pressed");
    im.put(KeyStroke.getKeyStroke(KeyEvent.VK_X, 0, true), "released");
    La pressione/rilascio del tasto 'X' viene mappata sulle chiavi "pressed"/"released" (queste chiavi sono usate poi nelle ActionMap ... ma non è importante per capire il codice sopra), solo per il tuoPulsante.

    Con WHEN_FOCUSED vale solo se il focus è sul pulsante. Se vuoi che abbia effetto anche se il focus non è sul pulsante (dovunque purché nella stessa finestra), allore devi mettere WHEN_IN_FOCUSED_WINDOW. Come vedi a livello pratico cambia poco.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    capito.


    avrei un'altra domanda anche....ho visto che in generale se si premono insieme (contemporaneamente) piu di tre tasti l'evento viene ignorato. ma questo non solo con java: anche su firefox ora che sto scerivendo per
    esempio.
    Che tu sappia è possibile catturare l'input contemporaneo di più di tre tasti ?
    forse è proprio una questione di hardware....non so come funzionano le tastiere dei computer

    ti ringrazio cmq

  5. #5
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da Mr.Bloom
    Che tu sappia è possibile catturare l'input contemporaneo di più di tre tasti ?
    Mi sembra strano che non sia possibile... Le combinazioni come le fai? Ad esempio sul mac ho un programma che si attiva premendo CMD + CTRL + ALT + BARRA SPAZIATRICE :master:

    Originariamente inviato da Mr.Bloom
    forse è proprio una questione di hardware....non so come funzionano le tastiere dei computer
    http://www.beyondlogic.org/keyboard/keybrd.htm
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  6. #6
    Probabilmente mi sono espresso male:

    non intendo fare una combinazione di tasti asincrona, ovvero ad esempio che prima premi
    ALT poi tenendo premuto ALT premi CNTRL e poi tenendoli premuti entrambi premi un altro tasto etc.

    quello che intendo è premere 4 tast contemporaneamente come in un accordo di pianoforte.

    ovviamente questa cosa mi server per un uso non convenzionale della tastiera,
    che riguarda la musica.

  7. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Mr.Bloom
    quello che intendo è premere 4 tast contemporaneamente come in un accordo di pianoforte.

    ovviamente questa cosa mi server per un uso non convenzionale della tastiera,
    che riguarda la musica.
    Leggi cosa dicevo qui
    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 © 2026 vBulletin Solutions, Inc. All rights reserved.