Existe opção melhor para por um valor padrão em um JTextField?

0 respostas
VictorMatuk

O que acontece dessa vez é o seguinte.

Tenho 3 JTextFields.

JTextField jtf1 = new JTextField("0", 3);
JTextField jtf2 = new JTextField("0", 3);
JTextField jtf3 = new JTextField("0", 3);
Eu adiciono FocusListener neles...
jtf1.addFocusListener(this);
jtf2.addFocusListener(this);
jtf3.addFocusListener(this);

Que por sua vez manda eu implementar os metodos

public void focusGained(FocusEvent e)
public void focusLost(FocusEvent e)

Depois de implementado, eu coloco umas regras neles pois meu objetivo é fazer com que o 0 que coloquei como padrão suma ao clicar na JTextField.

public void focusGained(FocusEvent e) {
Object origem = e.getSource();
		
if(origem == jtf1)
	if(jtf1.getText().equals("0"))
		jtf1.setText("");
if(origem == jtf2)
	if(jtf2.getText().equals("0"))
		qtd.setText("");
if(origem == jtf3)
	if(jtf3.getText().equals("0"))
		jtf3.setText("");
}

Pronto, agora quando eu clico o 0 desaparece.

E fiz uma outra regra pro 0 reaparecer caso o usuario não tenha escrito nada e clique em outro lugar

public void focusLost(FocusEvent e) {
Object origem = e.getSource();
if(origem == jtf1)
	if(jtf1.getText().isEmpty())
		jtf1.setText("0");
if(origem == jtf2)
	if(jtf2.getText().isEmpty())
		jtf2.setText("0");
if(origem == jtf3)
	if(jtf3.getText().isEmpty())
		jtf3.setText("0");
}

Pronto tá perfeito! Claro se funcionasse ¬¬

O que acontece é que quando eu clico por exemplo na jtf3 o que some é o 0 do jtf1.

Alguem descobre? Imagino que tenha algum problema no e.getSouce();
mas no site da Oracle me compliquei

Criado 19 de agosto de 2010
Respostas 0
Participantes 1