Vários JTextField controlar TAB?  XML
Índice dos Fóruns » Interface Gráfica
Autor Mensagem
paulinhohd
JavaEvangelist
[Avatar]

Membro desde: 28/03/2005 14:44:22
Mensagens: 462
Localização: Poços de Caldas
Offline

Em uma tela de minha aplicação tenho vários JTextFields, como faço para que ao usuário apertar ENTER vá para o próximo JTEXT que eu desejo?
E fazer o mesmo para o TAB também?

Obrigado!

Paulo Roberto

"As vezes, são os pequenos detalhes que fazem a diferença!" (Eu)
[Email] [MSN]
Fernando Generoso da Rosa
Virtual Machine Man

Membro desde: 14/01/2003 14:48:21
Mensagens: 555
Localização: Sombrio/SC
Offline

Pois é... Em java não tem um tabOrder....

para fazer isso, acho que o único jeito é implementar um focusListener para cada componente e no focusLost, tu fazer um requestFocus para o componente que tu quer q vá. Acho que é o único jeito...

[Email] [MSN]
paulinhohd
JavaEvangelist
[Avatar]

Membro desde: 28/03/2005 14:44:22
Mensagens: 462
Localização: Poços de Caldas
Offline

Fernando Generoso da Rosa wrote:Pois é... Em java não tem um tabOrder....

para fazer isso, acho que o único jeito é implementar um focusListener para cada componente e no focusLost, tu fazer um requestFocus para o componente que tu quer q vá. Acho que é o único jeito...



Você teria algum exemplo de como faz isso?
Teria de controlar os Focus tudo com if?

Valeu!

Paulo Roberto

"As vezes, são os pequenos detalhes que fazem a diferença!" (Eu)
[Email] [MSN]
rpfragoso
JavaBaby
[Avatar]

Membro desde: 21/05/2007 19:59:40
Mensagens: 84
Offline

Você já tentou usar nextFocusableComponent?
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20485
Localização: Curitiba/PR
Offline

No Java, algumas coisas que em outras linguagens são simples, se tornam bastante complexas...

É melhor entender como funciona o esquema de foco do Swing:
http://java.sun.com/docs/books/tutorial/uiswing/misc/focus.html

É como tentar limitar o tamanho de um JTextField. Você tem que estender algumas classes, colocar código em pontos estratégicos, e esquentar muito a cabeça com algo que em qualquer outra linguagem vc faria setando uma simples propriedade.

@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
ivo costa
JavaEvangelist
[Avatar]

Membro desde: 06/11/2007 12:07:34
Mensagens: 493
Localização: Porto Alegre - RS
Offline

Isso aqui faz com que os componentes de um determinado JPanel mudem o foco quando precionado enter:


Eu sonho com um mundo melhor, onde galinhas que atravessam a rua não serão questionadas pelos seus motivos.
Formate o seu código usando as tags [code] http://www.guj.com.br/posts/list/50115.java
Faça perguntas inteligentes
[MSN]
paulinhohd
JavaEvangelist
[Avatar]

Membro desde: 28/03/2005 14:44:22
Mensagens: 462
Localização: Poços de Caldas
Offline

Colocando seu código exemplo em meu fonte, deu o seguinte erro quando chamo a tela:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at gui.Tela_Cad.getJContentPane(Tela_Cad.java:89)
at gui.Tela_Cad.getJFrame(Tela_Cad.java:74)
at gui.Tela_Principal$1.actionPerformed(Tela_Principal.java:80)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at ch.randelshofer.quaqua.QuaquaButtonListener.mouseReleased(QuaquaButtonListener.java:86)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)



Paulo Roberto

"As vezes, são os pequenos detalhes que fazem a diferença!" (Eu)
[Email] [MSN]
ivo costa
JavaEvangelist
[Avatar]

Membro desde: 06/11/2007 12:07:34
Mensagens: 493
Localização: Porto Alegre - RS
Offline

Faz o seguinte:
execute o meu código (apenas o meu código),
verifica se é isso que vc qué,
entenda o código e transporte para o seu sistema.
Um simples copy/past nem sempre funciona

Eu sonho com um mundo melhor, onde galinhas que atravessam a rua não serão questionadas pelos seus motivos.
Formate o seu código usando as tags [code] http://www.guj.com.br/posts/list/50115.java
Faça perguntas inteligentes
[MSN]
paulinhohd
JavaEvangelist
[Avatar]

Membro desde: 28/03/2005 14:44:22
Mensagens: 462
Localização: Poços de Caldas
Offline

ivo costa wrote:Um simples copy/past nem sempre funciona


É depois dessa acho que não tenho mais nada a perguntar.

ViniGodoy estive lendo o artigo que me passou e estou tentando adaptar mas está complicado.
Bem que você falou que o que é simples em outras linguagens em java tem que esquentar a cabeça.

Paulo Roberto

"As vezes, são os pequenos detalhes que fazem a diferença!" (Eu)
[Email] [MSN]
ivo costa
JavaEvangelist
[Avatar]

Membro desde: 06/11/2007 12:07:34
Mensagens: 493
Localização: Porto Alegre - RS
Offline

Eu fiz uma busca no google, tirei um tempo pra fazer esse código pra ti, fiz uma exemplo que funciona e vc ainda vem me dizer que tá dando nullpointer no teu código?

Pelo erro deve ter dado conflito com algum actionPerformed.
Comente todos os actionPerformed da sua tela pra ver se funciona.

Faça perguntas inteligentes

Eu sonho com um mundo melhor, onde galinhas que atravessam a rua não serão questionadas pelos seus motivos.
Formate o seu código usando as tags [code] http://www.guj.com.br/posts/list/50115.java
Faça perguntas inteligentes
[MSN]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20485
Localização: Curitiba/PR
Offline

Se seu problema é só fazer o enter se comportar como tab, tente colocar esse código aqui no construtor do seu JFrame:



Como o ivo já tinha feito.

This message was edited 1 time. Last update was at 21/08/2008 13:01:35


@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
paulinhohd
JavaEvangelist
[Avatar]

Membro desde: 28/03/2005 14:44:22
Mensagens: 462
Localização: Poços de Caldas
Offline

ivo costa wrote:Eu fiz uma busca no google, tirei um tempo pra fazer esse código pra ti, fiz uma exemplo que funciona e vc ainda vem me dizer que tá dando nullpointer no teu código?Faça perguntas inteligentes


Ivo desculpe "ter" feito você perder seu precioso tempo sendo que o fórum é de livre e espontânea vontade para quem quer ajudar aos outros (e não obrigarem aos usuários do GUJ a perderem seus tempos!

Vini eu consegui colocando o código no construtor do JFrame. o Enter está funcionando perfeitamente com o Focus, agora vou estudar como delimitar para QUAL componente é o próximo focus.

Ivo obrigado pela ajuda! E pode deixar que eu li o link que me mandou de "Fazer perguntas inteligentes"




Paulo Roberto

"As vezes, são os pequenos detalhes que fazem a diferença!" (Eu)
[Email] [MSN]
 
Índice dos Fóruns » Interface Gráfica
Ir para:   
Powered by JForum 2.1.8 © JForum Team