2011-11-28 5 views

risposta

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

positionCaret() ... un nome confuso per tale metodo. – ceklock

+3

sì, smth come 'setCaretPosition' sarebbe conveniente –

+0

C'è un comportamento piuttosto strano in TextArea, come la freccia in giù non si sposta verso il basso. – brian

5

È possibile utilizzare la funzione positionCaret come accennato in precedenza. Ma assicurati di avvolgerlo in Platform.runLater. Altrimenti potrebbe non funzionare affatto.

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

Solo se viene eseguito da un altro thread rispetto al thread principale dell'interfaccia utente. – DeepSidhu1313

1

Esistono due metodi in TextInputControl che consentono la manipolazione della posizione del cursore. Questi sono: -

  1. selectPositionCaret (int pos) - Consente di selezionare il testo tra l'ultimo posizione del cursore fino alla posizione del cursore corrente che hai inserito.

  2. positionCaret (int pos) - Imposta la posizione attuale del cursore eliminando anche la selezione precedente.

Quindi penso che nel tuo caso tu voglia utilizzare il metodo positionCaret per impostare la posizione senza alcuna selezione.