Ver Mensaje Individual
  #2 (permalink)  
Antiguo 04/04/2012, 18:08
Avatar de FiruzzZ
FiruzzZ
 
Fecha de Ingreso: diciembre-2007
Ubicación: en casa
Mensajes: 470
Antigüedad: 17 años
Puntos: 41
Respuesta: No consigo seleccionar todo el texto en un jTextField

Con algunos retoques funciona, no al 100% como lo ideaste pero es un avance
Código Java:
Ver original
  1. @Override
  2.     public void focusGained(FocusEvent e) {
  3.                      
  4.            setBackground(new Color(243 ,232, 212));
  5.            //setFont(new Font("DejavuSans", 1, 12));  //comentando esta linea funciona
  6.            //Compruebo texto del control, si es el mensaje del control lo
  7.            //preparo con selectAll() para que se borre al pulsar una tecla
  8.            cTexto = getText().trim();
  9.             if ("".equals(getText())) {
  10.                 setText(Mensaje);
  11.                 selectAll();
  12.             } else {
  13.                 System.out.println(getText()+ " "+ Mensaje);
  14.                 if (cTexto.equals(Mensaje)) {
  15.                     selectAll();
  16.                 } else {
  17.                     select(0,0);
  18.                 }
  19.  // la siguiente linea no tiene sentido, porque sobreescribe la lógica que está dentro
  20. // de  esta condición if (cTexto.equals(Mensaje))
  21. //                select(0,0);
  22.             }
  23.                    }
  24.         });
  25.        
  26.         this.addFocusListener(new FocusAdapter() {
  27.         @Override
  28.     public void focusLost(FocusEvent e) {
  29.            setBackground(new Color(255 ,255, 255));
  30.            setFont(new Font("Dejavu Sans",0,12));
  31.            if(  "".equals(getText())){
  32.                setText(Mensaje);
  33.                setForeground(new Color(217,198,180));
  34. //               select(0, 0); // esta tampoco tiene sentido, porque el componenete ya perdió el foco
  35.            } else
  36.                setForeground(new Color (83,59,35));
  37.                
  38.            }
  39.         });

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)
__________________
BadProgrammerException!

Última edición por FiruzzZ; 04/04/2012 a las 18:20