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();
}