Foco em um JtextField ao abrir um JPanel

9 respostas
M

Boa tarde…

Tenho um form principal e um botão que adiciona uma aba com um Jpanel dentro.
Nesse Jpanel é um cadastro de paciente e existe um JtextField…
Quero que ao clicar nesse botao e abrir minha aba com o meu JPanel o foco esteja nesse JTextField.

Abaixo segue meu código que abre a aba com um Jpanel.

jTabbedPanePrincipal.setVisible(true);
        JPanel panel = new JPanel();
        panel.setName("Cadastro de Paciente");
        panel.add(new Jp_CadastroPaciente());     //ESSA LINHA É QUE CHAMA MEU JPANEL           
        jTabbedPanePrincipal.add(panel);
        jTabbedPanePrincipal.setSelectedComponent(panel);

ja tentei grabFocus() e nada.

Percebi que no JPanel não existe o evendo WindowOpened, acredito que com o evento WindowOpened no JPanel também resolveria meu problema…

Alguém tem uma idéia??

Obrigado.

9 Respostas

ViniGodoy

Depois da linha 3 faça:

Depois da linha 6 faça:

Onde getTextField() é o nome do método getter do seu JTextField que está dentro do painel. Note que esse método tem que ser public.

Finalmente, nunca use o método grabFocus(). A própria documentação indica que seu funcionamento não é multiplataforma e o requestFocusInWindow() deve ser usado no lugar.

M

Godoy, fiz exatamente da maneira que você indicou mas não aconteceu nada…

Na verdadeeu ja tinha tentando isso enao tinha dado certo ainda.

ViniGodoy

Já tentou colocar o requestFocus no changedListener do JTabbedPane?

M

nao tentei nao, mas esse changedListener é um evento da JTabbedPane?

ViniGodoy

Sim. Ele avisa quando a tab mudou.

M

cliquei com o botão direito na minha JTabbedPane, mas não encontrei esse evento não.

M

??

ViniGodoy

Aí você se entende com o seu construtor gráfico, porque o evento existe:
http://docs.oracle.com/javase/6/docs/api/javax/swing/JTabbedPane.html#addChangeListener(javax.swing.event.ChangeListener)

M

estou usando netbeans 7.3

Criado 13 de abril de 2013
Ultima resposta 15 de abr. de 2013
Respostas 9
Participantes 2