Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    8

    Java, KeyStroke e getKeyStroke con String

    Salve,
    il mio programma java dovrebbe leggere da file alcune stringhe di testo e tramite il metodo KeyStroke.getKeyStroke(String) in teoria dovrebbe ritornare il KeyStroke corrispondente alla stringa, da passare poi al metodo setAccelerator di un JMenuItem... se scrivo "ctrl X" o roba del genere funziona, il problema č che non riesco a fargli riconoscere il tasto "CANC", il tasto "+" e il tasto "-" del tastierino numerico... ho provato a scrivere in pių modi ma niente!
    Qualcuno sa come risolvere questo problema?
    Grazie in anticipo

  2. #2
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    KeyStroke.getKeyStroke('-')
    per avere il ctrl
    KeyStroke.getKeyStroke((int)'-', InputEvent.CTRL_MASK)

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    8
    Non funziona lo stesso!
    Il problema č che non posso mettere direttamente '-' nel sorgente visto che il mio programma usa ResourceBundle per ricavare da un file alcune impostazioni tra le quali anche quelle per i vari setAccelerator()
    Ripeto: nel file se scrivo "ctrl X" (naturalmente come valore di una qualche chiave) allora lo riconosce ma non riesco proprio a fargli prendere quei 3 tasti! Ci sarā pure il modo di farlo, non credo che devo per forza cambiare combinazione di tasti...

  4. #4
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    KeyEvent.VK_MINUS
    KeyEvent.VK_PLUS
    KeyEvent.VK_CANCEL

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    8
    Ehm, grazie, so che i KeyEvent relativi a quei tasti sono quelli...
    ma a me servono le stringhe corrispondenti da passare al metodo KeyStroke.getKeyStroke()

    Se metto KeyStroke.getKeyStroke("ctrl X") riconosce correttamente CONTROL+X se provo qualsiasi combinazione o variante di "CANC" "CANCEL" "DEL" "DELETE" "PLUS" "MINUS" "+" "-" non lo accetta...

    Grazie per eventuali risposte.

  6. #6
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    non si capisce perchč non puoi
    mettere direttamente '-' nel sorgente
    leggi una variabile la casti a char e basta
    comunque prova con
    getKeyStroke("pressed VK_PLUS")

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    8
    Non posso farlo perchč mi č stato richiesto di mettere tutte le impostazioni relative alla personalizzazione del programma in dei file di testo in modo da poter fare modifiche senza ricompilare... Per gestire questi file di testo uso ResourceBundle che data una chiave restituisce il valore corrispondente.
    Per questo non mi č possibile inserirlo direttamento nel codice!
    Quello che non mi č assolutamente chiaro č perchč il metodo getKeyStroke riesce a riconoscere "ctrl X" e non "canc" o qualcosa del genere!!!

  8. #8
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    char car = bundle.getString("acc-char").charAt(0);
    KeyStroke.getKeyStroke(car, ...

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    8
    Ho provato con il carattere '+' ma nel menu viene fuori "unknown KeyCode: 0x2b"

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    8
    OK, sono riuscito a farlo funzionare almeno con '+' e '-'! stavo usando un int invece di un char... comunque non č una soluzione che mi piace molto, o almeno non č molto flessibile... ed invece il tasto cancel? come glielo specifico nel file con un singolo carattere visto che uso charAt(0) ?!??

    Comunque, grazie mille per l'aiuto!
    Ciao

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 © 2024 vBulletin Solutions, Inc. All rights reserved.