Отображение пользовательской строки в виде ссылки в JEditorPane

Как я могу показать пользовательскую строку, такую ​​как [1234|alink], как ссылку с "alink" в виде текста и "1234" в качестве ее местоположения, не заменяя ее тегом <a>?
Я имею в виду что-то вроде BBCode.


person Ariyan    schedule 15.10.2012    source источник
comment
Вы пытались поиграть с комплектом редактора (на самом деле вам просто нужно определить собственный синтаксический анализатор для обработки bbcodes)? Это должно быть возможно путем создания подкласса/делегирования существующего HTMLEditorKit, а затем путем вызова setEditorKit в экземпляре jeditorpanel.   -  person zubrabubra    schedule 16.10.2012


Ответы (1)


Тут я вижу несколько вариантов:

  1. Вы предварительно обрабатываете свои строки и конвертируете свои теги в эквивалентный HTML
  2. Вы начинаете играть с парсерами/DTD/EditorKit.

    а. Вы создаете свой собственный синтаксис (может занять много времени)

    б. Вы повторно используете HTMLEditorKit ( вам нужно расширить его), попробуйте добавить больше информации в DTD по умолчанию, чтобы добавить свои пользовательские элементы (и, следовательно, сделать так, чтобы синтаксический анализатор возвращал ваши дополнительные элементы), и вы расширяете ViewFactory, чтобы вы могли отображать свои новые элементы с помощью выделенных представлений.

В то время как вариант 2 явно лучше в долгосрочной перспективе (особенно если вы действительно заинтересованы в высокой производительности), вариант 1 действительно легко реализовать.

См. эти ссылки для получения дополнительной информации:

person Guillaume Polet    schedule 15.10.2012