Olá para todos! Como posso fazer para mudar o foco de um JTextField para outro JTextField? Fiz um código assim mas não funcionou…
Classe Principal
[code]
public class Teste extends javax.swing.JFrame {
private Component comp[];
/** Creates new form Teste */
public Teste() {
initComponents();
// Método Construtor que inicializa um vetor com todos os componentes do frame!
comp = jPanel1.getComponents();
System.out.println("Número de componentes .: "+comp.length);
}[/code]
Ação do botão que muda(ou deveria) foco para o próximo JTextField
[code]
private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
for (Component component : comp) {
// clausula de comparação
if(component instanceof JTextField && !component.isFocusOwner())
{
component.requestFocus();
break;
}
}
}[/code]
Obrigado!
Fale Igor! Obrigado pela resposta! mas neste caso, eu queria que o programa entendesse o component como parametro para este método! senão teria que setar o mesmo para o primeiro jtexfield , depois para o segundo, e assim vai… queria q component fizesse isso… nao sei se fui claro… e outra …
Marcio, da uma olhada na api pra ver a diferenca entre os métodos, pois eu realmente não lembro…ainda assim não consegui compreender o seu problema.
vlw!
Vou olhar a api mesmo… obrigado… o problema é o seguinte… queria que a passagem de foco fosse automática e feita de uma só vez com um método somente… por exemplo : Da forma que esta feito o programa, o evento para passar de um JTextField para outro é setado diretamente no JTextField… tipo assim, eu tenho o JTextField txt1 e quero passar para o txtfield2, entao eu teria que fazer no txt1, que quando fosse apertado Enter , o seguinte método fosse chamado : txtfield2.grabfocus… e desta forma assim pros outros jtextfield´s que eu vier a ter na minha aplicação… queria um metodo que automatisse isso e independesse de ser colocado como evento diretamente no textfield, entendeu??? 