Buonasera a tutti, sono nuovo del forum. Spero qualcuno di voi possa darmi una mano su un problema che mi porto dietro da tempo e di cui non riesco a trovare soluzione ammesso che alla fine non sia un bug di java...
Spiego il progetto Java:


- JInternalFrame con all'interno
- JTabbedPane con all'interno
- Componenti quali JtextField, JPanel con all'interno JTable, ComboBox etc
Lo spostamento da un componente all'altro usando la tastiera è gestito da una classe FocusTraversalPolicy legata al JTabbedPane; in questa classe si gestisce l'avanzamento di componente in componente con i tasti TAB e ShiftTab; tutto funziona meravigliosamente pure nel caso di componente Jtable se non si è ancora in Edit di cella.
Preciso che al componente Jtable ho disattivato i tasti Tab e ShifTab perchè non siano utilizzati per movimenti tra celle e possono essere utilizzati per uscire dal JTable Stesso.
ActionMap myTableActionMap = myTable.getActionMap();
myTableActionMap.put("selectPreviousColumnCell", new myPreviousFocusHandler());
myTableActionMap.put("selectNextColumnCell", new myNextFocusHandler());
public class myPreviousFocusHandler extends AbstractAction
{
public void actionPerformed(ActionEvent evt)
{
KeyboardFocusManager myManager = KeyboardFocusManager.getCurrentKeyboardFocusManage r();
myManager.focusPreviousComponent();
}
}
public class myNextFocusHandler extends AbstractAction
{
public void actionPerformed(ActionEvent evt)
{
KeyboardFocusManager myManager = KeyboardFocusManager.getCurrentKeyboardFocusManage r();
myManager.focusNextComponent();
}
}


Nel caso di edit di cella (JTextField) nel JTable se si preme il tasto TAB il programma si comporta come è nelle mie attese:
- Passa il controllo al FocusTraversalPolicy del JtabbedPane
- Passa da StopCellEditing della cella in edit
- Passa da getCellEditorValue della cella in edit
- Passa da FocusLost di un Listener sulla JTable dove si rileva che il prossimo componente è quello corretto a cui passa il focus
- Attiva il focus sul componente successivo
Nel caso di edit di cella (JTextField) nel JTable se si preme il tasto ShiftTAB il programma si comporta come non è nelle mie attese e diversamente dal tasto TAB:
- NON Passa il controllo al FocusTraversalPolicy del JtabbedPane
- NON Passa da StopCellEditing della cella in edit
- NON Passa da getCellEditorValue della cella in edit
- Passa da FocusLost di un Listener sulla JTable dove si rileva che il prossimo componente è lo stesso JTextField che gestisce l'edit di cella.
- Rimane attiva la stessa cella della JTable in uno stato non si capisce se di edit o meno.

Spero di essere stato chiaro
L'intero sorgente è troppo esteso per poter essere pubblicato ma non ho problemi a riportarne pezzi se vi puo' essere utile.


Ringrazio in anticipo chi volesse aiutarmi