Opa pessoal, minha dúvida é como criar um JTextField em que eu coloco um texto e quando eu clico nele ele se apaga sozinho, um exemplo, “Digite o texto aqui” e quando vc clica no campo essa mensagem desaparece e já deixando o campo livre para a pessoa digitar
JTextfield com texto "auto-apagável"
6 Respostas
jTextField.setText("");
coloca no evento do foco do campo.
Pega o código abaixo e usa como base, ele não compila mas é por aí o caminho.
Tem que setar um Listener de Mouse no seu JTextField. Depois tratar.
JTextField texto = new JTextField(10);
texto.addMouseListener(new MouseListener() {
....
public void mousePressed(MouseEvent e) {
texto.setText("");
}
....
});
Pega o código abaixo e usa como base, ele não compila mas é por aí o caminho.
Tem que setar um Listener de Mouse no seu JTextField. Depois tratar.
JTextField texto = new JTextField(10); texto.addMouseListener(new MouseListener() { .... public void mousePressed(MouseEvent e) { texto.setText(""); } .... });
Hmmm, valeu eu consegui!! eu adaptei e fiz desse jeito:
JTextField campo_entrada = new JTextField(40);
ManipuladorMouse manipula_mouse = new ManipuladorMouse();
}
...
private class ManipuladorMouse implements MouseListener{
public void mousePressed(MouseEvent e){
campo_entrada.setText("");
}
public void mouseEntered(MouseEvent e){
}
public void mouseExited(MouseEvent e){
}
public void mouseClicked(MouseEvent e){
}
public void mouseReleased(MouseEvent e){
}
}
Eu não preciso implementar o outros métodos do mouse, mas se eu deletar os outros, fica dando erro pq ele pede esses outros métodos, então toda vez que eu precisar de apenas um método de mouse eu tenho que colocar os outros tb mesmo que eu não implemente?
Oi.
utilize MouseAdapter em vez do Listener, assim você implementará apenas o que quiser utilizar.
Se eu fosse fazer isso, provavelmente implementaria um Document.
As sugestões com listeners geralmente não são multi-plataforma e tratam apenas um tipo de entrada (no seu caso, o mouse, mas o cara pode chegar no campo através da tecla tab, ou através do focusmanager).
Eventos também respondem mau a copy&paste. Na verdade, eventos são uma péssima maneira de se lidar com JTextFields.
Você pode ler mais sobre esse assunto aqui:
http://www.guj.com.br/articles/29
Esse document não faz exatamente isso que vc quer, mas o texto é importante para entender o que é o Document e como ele funciona.
O legal é que vc também poderia usar o document para detectar quando o texto foi apagado, para então voltar com a mensagem de texto vazio.
Pode colocar tbm focusGained…assim toda vez que tiver foco no elemento (nao soh pelo mouse, mas pela tecla TAB) ele apaga o texto automaticamente…