Obter a linha e a coluna atual de um TextArea (JavaFX)

2 respostas Resolvido
L

Eu gostaria de uma forma mais eficiente de obter a linha atual de um componente javafx.scene.control.TextArea. Pois atualmente eu estou pegando o tamanho de cada linha e somando até dar no caretPosition.

2 Respostas

L
Solucao aceita

Descobri que você pode facilmente obter o número da linha atual assim:

String[] linhas = ta.textProperty().get().substring(0, ta.getCaretPosition()).split("\n");
   
int linhaAtual = linhas.length;

Ou seja eu vejo quantos \n têm do início (posição 0) até o caretPosition;

Mas ainda não descobrir como pegar o número da coluna atual;

L

Pra descobrir o número da coluna basta verificar o tamanho da última linha;

String[] linhas = ta.textProperty().get().substring(0, ta.getCaretPosition()).split("\n");

int linhaAtual = linhas.length;

int colunaAtual = linhas[linhas.length-1].length();

Ainda tem que fazer alguns ajustezinhos mas é isso aí;

Criado 26 de setembro de 2016
Ultima resposta 27 de set. de 2016
Respostas 2
Participantes 1