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

    Tasto MAIUSC+TAB problemi

    Salve ragazzi ho la necessità di gestire il metodo focus di default di java,.

    Mi spiego meglio. Ho una maschera con varie textfield, e voglio che alla pressione del tab venga effettuato il focus su text che io decido per fare ciò ho utilizzato il seguente codice

    codice:
    textDescrizione.getInputMap().put(KeyStroke.getKeyStroke((char)KeyEvent.VK_TAB), "myTabAction");
    	    textDescrizione.getActionMap().put("myTabAction", new AbstractAction("myTabAction") {
    	                        public void actionPerformed(ActionEvent e) {
    	                             textZuccheri.requestFocus();
    	                        }
    	    });
    
    in pratica se sono sulla textDescrizione e utilizzo il tab vado in textZuccheri
    fin qui tutto ok però adesso voglio ricostruire il percorso inverso cioè premendo il tasto MAIUSC + TAB per ritornare alla text precedente e questonon funziona o meglio è come se sovrascrivesse il tasto TAB

    codice:
    textDescrizione.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_SHIFT, (char)KeyEvent.VK_TAB ), "myTabAction");
    	    textDescrizione.getActionMap().put("myTabAction", new AbstractAction("myTabAction") {
    	                        public void actionPerformed(ActionEvent e) {
    	                             textSngl.requestFocus();
    	                             System.out.println("victor");
    	                        }
    	    });
    in questo modo ho digito TAB o MAIUSC+TAB vado sempre nella textSngl

    come mai????

  2. #2
    ragazzi nessuno mi sa dare un aiutino???

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

    Re: Tasto MAIUSC+TAB problemi

    Originariamente inviato da bircastri
    codice:
    textDescrizione.getInputMap().put(KeyStroke.getKeyStroke((char)KeyEvent.VK_TAB), "myTabAction");
    Occhio che quel getKeyStroke (che riceve un char) fornisce un KeyStroke per un evento di key "typed", non "press".

    KeyStroke.getKeyStroke(KeyEvent.VK_TAB, 0)

    cioè l'altro getKeyStroke(int keyCode, int modifiers)

    invece rappresenta un key "press". Prova questo, perché intuitivamente (non ho tempo ora di fare la verifica ...) una azione di tab non è un carattere che si digita in un testo.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    ascolta, io questo pezzo già l'ho collaudato e funziona cmq anche come mi hai suggerito il risultato non cambia.

    Invece il mio problema è quando voglio fare l'azione all'indietro combinando il tasto SHIFT + TAB
    textDescrizione.getInputMap().put(KeyStroke.getKey Stroke(KeyEvent.VK_SHIFT, (char)KeyEvent.VK_TAB ), "myTabAction");
    qui ho problemi che non funziona

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da bircastri
    textDescrizione.getInputMap().put(KeyStroke.getKey Stroke(KeyEvent.VK_SHIFT, (char)KeyEvent.VK_TAB ), "myTabAction");

    qui ho problemi che non funziona
    Questo di certo non è corretto. Lo SHIFT non lo devi trattare come "tasto" ma come "modificatore".

    KeyStroke.getKeyStroke(KeyEvent.VK_TAB, KeyEvent.SHIFT_DOWN_MASK)

    Cioè usare il getKeyStroke(int keyCode, int modifiers)
    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.