Utilizar enter como tab

iae pessoal blz!!.. entao estou c/ um problema… eu fiz um metodo para “transformar” o enter em tab, e nesse metodo eu passo o frame em que eu quero que este recurso esteja habilitado como parametro… mas da maneira que eu fiz esse metodo só ira funcionar para “JInternalFrame” e eu queria que esse metodo funcionasse para todos os tipos de frame…

public static void enter(JInternalFrame obj){ HashSet conj = new HashSet(obj.getFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS)); conj.add(AWTKeyStroke.getAWTKeyStroke(KeyEvent.VK_ENTER, 0)); obj.setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, conj); }

Cara, uma vez fiz uma gambiarra pra isso funcionar…

Uma action pra cada campo do formúlário assim ó:

private void edNomeActionPerformed(java.awt.event.ActionEvent evt) {
cmbTipo.requestFocus();
}

private void cmbTipoActionPerformed(java.awt.event.ActionEvent evt) {
edRg.requestFocus();
}

private void edRgActionPerformed(java.awt.event.ActionEvent evt) {                                     
    edOrgEmissorRg.requestFocus();
}    

E assim por diante… para cada campo que vc quer que o enter trabalhe como TAB, crie um action jogando o foco para o proximo campo.

A boa notícia? É que fiuncionou!

Eu já fiz algo semelhante, pro ESC fechar o formulário. Eu fiz uma sobrecarga de métodos para usar em todos os tipos de forms. É uma idéia limpa eu acho hehehehe!!!

ae pessoal… eu consegui fazer esse método valer para qualquer tipo de Frame… vou postar o código ae p/ se alguem no futuro precisar poder utilizar a ideia…

public static void enter(java.awt.Container frm){ HashSet conj = new HashSet(frm.getFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS)); conj.add(AWTKeyStroke.getAWTKeyStroke(KeyEvent.VK_ENTER, 0)); frm.setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, conj); }

bom… na árvore de “parentesco” dos frames, eles são java.awt.Container , ou seja, têm este parente em comum.
entao coloquei java.awt.Container como o tipo de parâmetro do método:

public static void enter(java.awt.Container frm)

ao inves de colocar:

“public static void enter(JInternalFrame frm)” ou “public static void enter(JFrame frm)”

abraços até +