Множество неизвестных, но, возможно, следующее заставит вас задуматься.
все страницы должны принадлежать одному документу,
Согласовано.
Предполагается, что JTextPane, представляющий страницу, проверяет, заполнена ли она, а затем создает новую JTextpane под ней
Возможно, добавьте каждую текстовую панель в JScrollPane, но нене отображать полосы прокрутки или границу панели прокрутки.
если бы я удалил строку на, скажем, странице 2, каждая строка на каждой другой странице будет перемещена вверх
Вам потребуется вручную управлять окном просмотра каждой панели прокрутки.Первая страница будет позиционировать область просмотра со смещением 0. Следующая страница будет позиционировать область просмотра со смещением, представляющим высоту вашей страницы.
Тогда любые изменения в документе должны автоматически отражаться на всех текстовых панелях.
Возможно, вам также понадобится использовать setAutoScrolls(false)
для предотвращения прокрутки окна просмотра при перетаскивании мыши.
Есть ли способ расширить выборки на несколько страниц?
Выделение - это свойство текстовой панели, а не документа.
Не уверен, что произойдет, если вы попытаетесь перетащить мышь из одной текстовой панели в другую.
Полагаю, вам может понадобиться какая-то особая логика.Возможно использование событий mouseEntered / Exited для запуска этого типа обработки.