2012-03-31 27 views
5

Tengo un JTextField con algo de texto. Cuando hago clic en el campo de texto, el cursor se mueve al final del campo. Quiero que el cursor se mueva al comienzo del campo cuando se enfoca.Mueva el cursor de JTextField o JComboBox al inicio

Tengo el mismo problema con un editable JComboBox.

¿Cómo puedo lograr este posicionamiento del cursor en el enfoque?

+1

Quiero decir que tengo JComboBox editable con cualquier texto en el contenido, y cuando hago clic en JComboBox quiero mover el marcador al inicio de JComboBox editable. Por defecto, va al final del campo de texto. Cuando dije el comienzo del campo no me refiero al primer elemento de la lista desplegable. – Karen

+0

Gracias por aclarar. Mi confusión se resolvió un poco a lo largo de la edición de ese comentario. :) –

Respuesta

5
/** 
* On gaining focus place the cursor at the start of the text. 
*/ 
public class CursorAtStartFocusListener extends FocusAdapter { 

    @Override 
    public void focusGained(java.awt.event.FocusEvent evt) { 
     Object source = evt.getSource(); 
     if (source instanceof JTextComponent) { 
      JTextComponent comp = (JTextComponent) source; 
      comp.setCaretPosition(0); 
     } else { 
      Logger.getLogger(getClass().getName()).log(Level.INFO, 
        "A text component expected instead of {0}", 
        source.getClass().getName()); 
     } 
    } 
} 

jTextField1.addFocusListener(new CursorAtStartFocusListener()); 
jComboBox1.getEditor().getEditorComponent().addFocusListener(new CursorAtStartFocusListener()); 
// Only one instance of CursorAtStartFocusListener needed. 
0

Creo que esto puede ser lo que usted está buscando:

JTextField t = new JTextField(); 
t.setHorizontalAlignment(JTextField.LEFT); 
2

Puede utilizar este comando

comp.setCaretPosition (índice);

there index is caret position.

Cuestiones relacionadas