Что бы вы ни делали, вам придется реализовать свои собственные процедуры рисования.Поскольку текст, который вы намереваетесь нарисовать, не будет делиться большинством характеристик текста, нарисованного с другими компонентами (он будет наклонен, вращаться с течением времени и обрезается по движущемуся видимому «краю» страницы), вам также придетсярисовать текст.
В SWING и во всех не консольных программах текст выводится на экран, как и любой графический примитив.Требуется немного обучения;особенно в деталях межстрочного интервала, межбуквенного переноса, переноса слов и т. д.
Это означает, что я рассмотрел бы новый компонент пользовательского интерфейса Swing. Вот как можно написать собственную картину для одного .В зависимости от деталей, вы можете использовать модель повторно.Как правило, проще писать только вид, чем вид и модель одновременно;однако необходимо сбалансировать потребности представления с пригодностью существующей модели.
Если вы выбираете существующую модель, интерфейс Document - это то, против чего вы должны кодировать свое представление.Вы можете взять на себя инициативу из компонентов представления JTextPane или JTextArea, в зависимости от того, хотите ли вы «добавить стиль» в ваш текст.
Не забывайте, что представление на самом деле не выполняет рисование вхорошо структурированный компонент Swing.Если это произойдет, то он не сможет быть очищен (следовать теме платформы).Это означает, что, хотя вы предоставите представление Swing (обычно с шаблоном имени, как JPagedBook), это представление должно быть связано с UIDelegate, который выполняет фактическое рисование представления.Это позволяет использовать несколько UIDelegate для каждого представления, причем каждый UIDelegate содержит инструкции о том, как визуализировать (нарисовать) представление способом, который соответствует внешнему виду платформы.
Самые большие проблемы вокругкак правило, это дополнительная работа, необходимая для правильной поддержки внешнего вида и отсутствия знаний о правильной регистрации UIDelegate (поэтому, когда представление рисует, оно находит то, что будет его рисовать).Стоит потратить несколько дополнительных часов (или пару дней, если программирование компонентов GUI является для вас чем-то новым), чтобы заставить его работать, как и остальная часть Swing.В конце концов у вас будет компонент, который не похож на «отдельную» часть библиотеки.