2011-11-28 5 views

답변

29
TextArea ta = new TextArea(); 
ta.setText("1234567890"); 
ta.positionCaret(4); 
+12

positionCaret() ... 그 메소드에 대해 혼동을주는 이름입니다. – ceklock

+3

예,'setCaretPosition'과 같은 smth가 편리합니다 –

+0

아래쪽 화살표가 아래로 움직이지 않는 것처럼 TextArea에서 꽤 이상한 동작이 있습니다. – brian

5

앞서 언급 한 것처럼 positionCaret 기능을 사용할 수 있습니다. 그러나 Platform.runLater에서 다시 포장하십시오. 그렇지 않으면 전혀 작동하지 않을 수 있습니다.

Platform.runLater(new Runnable() { 
    @Override 
    public void run() { 
     textArea.positionCaret(0); 
    } 
}); 
+4

메인 UI 스레드가 아닌 다른 스레드에서 실행중인 경우에만 해당. – DeepSidhu1313

1

캐럿 위치를 조작 할 수있는 두 가지 방법이 TextInputControl에 있습니다. 이들은 : -

  1. selectPositionCaret (INT의 POS)이 - 사용자가 입력 한 현재 캐럿 위치까지 마지막 캐럿 위치 사이에있는 텍스트를 선택합니다.

  2. positionCaret (int pos) - 이전 선택을 지우는 현재 캐럿 위치를 설정합니다.

그래서 당신의 경우에는 positionCaret 메서드를 사용하여 선택없이 위치를 설정하려고한다고 생각합니다.

관련 문제