Seleccionar todo de un jTextField

   Como seleccionar un jTextField al hacer click, como vemos en muchos sitios, es una de las preguntas mas buscadas en la web, y bueno, como aquí se le busca dar solución práctica a todas esas cosas aquí un pequeño TIP de como hacerlo...

   Esto es universal para cualquier lenguaje, solo cambia la forma en que el método es llamado, así que podemos hacerlo de 2 formas, la primera es contando el tamaño del texto y diciendole donde comienza y termina la selección

MiTextField.setSelectionStart(0);
MiTextField.setSelectionEnd(MiTextField.getText().length());


   La otra es la mas sencilla, simplemente seleccionamos todo y listo.

MiTextField.selectAll();

   Lo importante es que ambas sean al ganar foco, ya que muchos lo hacen con otros eventos pero por algo existe el método "FocusGained" (Foco Activo). Aquí un ejemplo de como implementarlo, son 2 campos donde utilizo las formas explicadas anteriormente.
import javax.swing.*;
import java.awt.event.*;

@SuppressWarnings("deprecation")
public class seltexto extends JFrame {
 boolean boton=false;
 JPanel PANEL = new JPanel();
 JTextField TEXTO1 = new JTextField(25);
 JTextField TEXTO2 = new JTextField(25);
 JLabel expli = new JLabel("Cambia entre JTextFields");

 public seltexto() {
  super("Login");
  setLocation(100,100);
  setSize(320,100);
  add(PANEL);
  PANEL.add(TEXTO1);
  PANEL.add(TEXTO2);
  PANEL.add(expli);
  TEXTO1.addFocusListener(new FocusAdapter(){
 public void focusGained (FocusEvent e){
   TEXTO1.selectAll();
    }
  });
  TEXTO2.addFocusListener(new FocusAdapter(){
 public void focusGained (FocusEvent e){
   TEXTO2.setSelectionStart(0);
   TEXTO2.setSelectionEnd(TEXTO2.getText().length());
    }
  });
  show();
 }



 public static void main(String[] arg) {
  JOptionPane.showMessageDialog(null,"Seleccionando jTextField...\n");
  JOptionPane.showMessageDialog(null,"By Carlitox ("+
   "http://calitoxenlaweb.blogspot.com)");
  new seltexto();
 }
}


2 Comentarios

Escribir Comentario
Anónimo
AUTOR
5 de enero de 2011, 6:30 delete

Muy buen aporte. Gracias por la explicación.

Responder
avatar

Lamentablemente hay muchos usuarios en la red que han llegado al blog para escribir obscenidades, así que la moderación se hace necesaria. Recuerda utilizar un lenguaje correcto y espera a que sea aprobado.

Si necesitas publicar código haz click en "Conversión" para hacerlo legible.
ConversiónConversión