2012-06-13 37 views
6

¿Hay algún método para devolver la posición del carácter en JTextField? Lo que quiero decir con eso es si tengo un JTextField con algunos valores en él. Por ejemplo, el campo contiene el valor ABCDEFJ. El usuario decide colocar el cursor justo después del carácter 'C' para ingresar un nuevo valor. ¿Hay algún método para obtener la posición donde ingresa el nuevo carácter? En este ejemplo, que volvería a 3.Encontrar la posición del texto del cursor en JTextField

+0

¿Cuál es el caso de uso real aquí? Se ve como un 'JSpinner' (o quizás un' JComboBox' editable) sería un mejor componente para usar. –

+0

Esta no es una buena pregunta porque está solicitando una solución de código específica en lugar de cómo implementar un comportamiento. La solución real a su comportamiento deseado puede implicar un enfoque completamente diferente. Por ejemplo, si estás tratando de verificar la entrada de un JTextField antes de que se complete, entonces quizás lo que realmente quieras usar es un DocumentFilter. Por lo tanto, en el futuro, cuéntenos más sobre el problema general que desea resolver y menos sobre qué tan específicamente está tratando de resolverlo. –

Respuesta

13

JTextField.getCaretPosition()

JTextField.setCaretPosition(int pos)

+0

Gracias. Esto es exactamente lo que estaba buscando. – tadpole

+0

¿Hay un método más directo, como establecer la posición en un desplazamiento de texto desde el inicio de la cadena? – will

+0

como este? 'JTextField.setCaretPosition (anyPrecalculatedOffset)' – alaster

2

Trate de conseguir uso de CaretListener interfaz:

public class A extends JFrame implements CaretListener 
{ 
    //Assume you have a text field. 
    public A() 
    { 
    JTextField field = new JTextField("bla bla"); 
    field.addCaretListener(this); 
    ..... 
    } 

    public void caretUpdate(CaretEvent e) 
    {   
    int index = e.getDot(); 
    ..... 
    } 
} 

getDot() método de CaretEvent clase devuelve el resultado que usted desea, puede asignarla a una variable global para su uso posterior en.

Cuestiones relacionadas