Swing - GridLayout

Eh o seguinte tenho um panel com caixas de texto dispostas horizontalmente e verticalmente como uma matriz com o GridLayout. Acontece que quando eu avanço o icone nas caixas de texto com o “tab”, ele vai horizontalmente, e eu queria que ele avançace verticalmente, como eu trato isto??

Bom, tem duas formas de se fazer isso:
Imaginemos o seguinte exemplo:

jtxf1 jtxf2
jtxf3 jtxf4

Primeiro exemplo:
jtxf1.setNextFocusableComponent(jtxf3);
jtxf3.setNextFocusableComponent(jtxf2);
jtxf2.setNextFocusableComponent(jtxf4);
jtxf4.setNextFocusableComponent(jtxf1);

porem observe que embora funcione, mas este metodo esta como deprecated na api.

Segundo exemplo:
Programe o evento FocusLost de todas as caixas para passar o Focus para a caixa que vc quiser, exemplo:
private void jtxf1FocusLost(java.awt.event.FocusEvent evt) {
jtxf3.requestFocus();
}
private void jtxf3FocusLost(java.awt.event.FocusEvent evt) {
jtxf2.requestFocus();
}
private void jtxf1FocusLost(java.awt.event.FocusEvent evt) {
jtxf4.requestFocus();
}
private void jtxf4FocusLost(java.awt.event.FocusEvent evt) {
jtxf1.requestFocus();
}