terça-feira, 30 de agosto de 2016

JTextField com Placeholder ou prompt text

No biblioteca swing do Java, não existe um método nativo que um campo de texto fique com um texto inicial de exemplo ou informação do que se trata aquele campo, e só após digitar, esse texto inicial é apagado. Assim como, ao clicar no campo, o cursor fique posicionado no início do texto.
Esse tipo de recurso, é conhecido como Placeholder ou prompt text. Segue imagem de exemplo:


Vamos aos passos...
1 - Na imagem abaixo, tenho um método no meu frame, que ao clicar no botão Novo, todos os campos do formulário são liberados para preenchimento, no exemplo deixei apenas um campo para simplificar, além de setar o nome inicial, ele deixa a letra na cor cinza claro, e seta o foco, veja:

2 - Na imagem abaixo, quando o foco estiver no textfield, o evento FocusGained() é disparado, e se o texto for o inicial, setamos a posição do cursor antes do texto ( posição 0), e logo em seguida setamos a cor apenas do cursor como preto, veja:



3 - Na imagem abaixo, quando o foco sair do textfield, o evento FocusLost() é disparado, e se o texto estiver vazio, setamos o texto inicial novamente com a cor cinza claro novamente, veja:

 

4 - Por último, na imagem abaixo, ao pressionar qualquer tecla dentro do textfield, o evento KeyPressed é disparado, e se o texto for igual ao inicial, setamos vazio no campo, e setamos a cor preta para o texto.

 

Observação: Esses eventos devem ser feitos individualmente para cada textfield desejado.


Nenhum comentário:

Postar um comentário