Con algunos retoques funciona, no al 100% como lo ideaste pero es un avance
Código Java:
Ver original@Override
setBackground
(new Color(243 ,
232,
212)); //setFont(new Font("DejavuSans", 1, 12)); //comentando esta linea funciona
//Compruebo texto del control, si es el mensaje del control lo
//preparo con selectAll() para que se borre al pulsar una tecla
cTexto = getText().trim();
if ("".equals(getText())) {
setText(Mensaje);
selectAll();
} else {
System.
out.
println(getText
()+ " "+ Mensaje
); if (cTexto.equals(Mensaje)) {
selectAll();
} else {
select(0,0);
}
// la siguiente linea no tiene sentido, porque sobreescribe la lógica que está dentro
// de esta condición if (cTexto.equals(Mensaje))
// select(0,0);
}
}
});
@Override
setBackground
(new Color(255 ,
255,
255)); setFont
(new Font("Dejavu Sans",
0,
12)); if( "".equals(getText())){
setText(Mensaje);
setForeground
(new Color(217,
198,
180));// select(0, 0); // esta tampoco tiene sentido, porque el componenete ya perdió el foco
} else
setForeground
(new Color (83,
59,
35));
}
});
No tengo idea de porqué
setFont(new Font("DejavuSans", 1, 12));, en focusGained está interfiriendo con la lógica que le presede.. pero bue
Por curiosidad, ¿Qué IDE estás usando?
PD: cuando usas el tag para enmarcar código, especificale un lenguaje, lo hace mas legible ;).. saludos
aaah.. me acabo de dar cuenta.. que estás agregando 2 FocusAdapter, en vez de UNO SOLO y @Override ambos métodos (no soluciona tu problema pero simplifica el código)