Я пытаюсь создать текстовый редактор с использованием Java Swing. В этом я использую JEditorPane вместо JTextArea. Я сталкиваюсь с проблемами при удалении выделенного текста и замене выделенного текста на JEditorPane. Код я использую:Удаление и замена выделенного текста в JEditorPane
public void delete(JEditorPane txt)
{
int start = txt.getSelectionStart();
int end = txt.getSelectionEnd();
String startText = txt.getText().substring(0,start);
String endText = txt.getText().substring(end,txt.getText().length());
txt.setText(startText + endText);
}
Проблема я столкнулся в том, что, когда я считаю, что значение из getSelectionStart() и getSelectionEnd(), они не считают символ новой строки, но при использовании подстроки, рассматривается символ новой строки. Поэтому, если я использую этот код в строке, перед которой есть 5 символов новой строки, вместо удаления выбранного текста текст удаляется из позиции, которая на 5 меньше выделенного текста. То же самое происходит с Replace. Пожалуйста помоги.
Я думаю, что они оба считают символы новой строки, но Windows, на самом деле использует два символа новой строки (возврат каретки + перевод строки), и что, кажется, вызывает путаницу здесь. –