2012-06-13 3 views
6

JTextField에서 문자의 위치를 ​​반환하는 방법이 있습니까? 내가 의미하는 바는 JTextField 에 값이있는 경우입니다. 예를 들어,이 필드에는 값 ABCDEFJ가 포함됩니다. 사용자는 문자 'C'바로 뒤에 커서를 놓고 새 값을 입력하기로 결정합니다. 그가 새 문자를 입력 위치 얻을 수있는 방법이 있습니다. 이 예 에서 그는 3JTextField에서 커서 텍스트 위치 찾기

+0

실제 사용 사례는 무엇입니까? 'JSpinner' (또는 편집 가능한'JComboBox')와 같이 사용하는 것이 더 나은 구성 요소가 될 것입니다. –

+0

행동을 구현하는 방법보다는 특정 코드 솔루션을 요구하기 때문에 이는 좋은 질문이 아닙니다. 원하는 행동에 대한 실제 해결책은 완전히 다른 접근법을 포함 할 수 있습니다. 예를 들어, JTextField의 입력이 완료되기 전에 입력을 검사하려고한다면 실제로 사용하고자하는 것은 DocumentFilter입니다. 앞으로는 해결하고자하는 전반적인 문제에 대해 더 자세히 알려 주시기 바랍니다. –

답변

13

JTextField.getCaretPosition()

JTextField.setCaretPosition(int pos)

+0

감사합니다. 이것은 내가 찾고 있었던 바로 그 것이다. – tadpole

+0

더 직접적인 방법이 있습니까? 문자열의 시작 부분에서 텍스트 오프셋으로 위치를 설정하는 것과 비슷합니까? – will

+0

이 마음에 드십니까? 'JTextField.setCaretPosition (anyPrecalculatedOffset)' – alaster

2

CaretListener 인터페이스의 사용을 점점보십시오 : 나중에 사용하기 위해 글로벌 변수에 클래스를 사용하면 원하는 결과를 반환

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() 방법 CaretEvent, 당신이 할당 할 수 있습니다 에.