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????