Edytor tekstu w Javie

0

Chciałbym zrobić edytor tekstu w Javie. Jest do tego sporo komponentów (np JTextArea, czy JEditorPane). Ale chciałbym mieć raportowane położenie karetki w tekście podawane jako numer wiersza i kolumny. Otóż znane mi klasy pozwalają szybko się zorientować w położeniu karetki w tekście i śledzić zmiany tego położenia, ale podają tylko jej odległość od początku dokumentu liczoną w znakach. Żeby to "przełożyć" na wiersz i kolumnę mógłbym zbudować tablicę początków wierszy, którą można dość szybko przeglądać.
Ale przy każdej faktycznej edycji, czyli dodaniu lub usunięciu czegoś taka tablica musiałaby być przebudowana, czyli cały dokument przejrzany. Z punktu widzenia efektywności nie wygląda to najlepiej, bo np. trzebaby to robić po każdym wprowadzeniu znaku z klawiatury. Czy nie zna ktoś jakiejś chytrzejszej metody na raportowanie wiersza i kolumny w edytowanym takście ?

0

Znalazłem rozwiązanie, podaję dla tych, których to może zainteresować:

public class QjteCaret implements CaretListener {
public void caretUpdate(CaretEvent ce) {
Pozycja = ce.getDot();
try {
Linia = oknoTekstu.getLineOfOffset(Pozycja);
Kolumna = Pozycja - oknoTekstu.getLineStartOffset(Linia);
}
catch(Exception e) {}
OpLinii.setText( new Integer(Linia+1).toString() );
OpKolumny.setText( new Integer(Kolumna+1).toString() );
}
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1