2009-07-29 6 views
1

Мне нужно взять текст из источника в виде обычного текста и отобразить его в JTextPane или JEditorPane. Исходный текст не является HTML, но будет содержать URL-адреса между квадратными скобками, которые должны отображаться и работать как гиперссылки.отображение ссылок в jTextPane java без html

Я рассмотрел установку типа содержимого панели в text/html и окружение url в тегах html, но это заканчивается тем, что игнорирует символы новой строки, что плохо, и я не уверен, как идти о замене символы новой строки с "<br/>". Легко ли это сделать?

Если это означает, что проверка по всей строке не лучше, просто настроить, как текст отображается?

Таким образом, я также рассмотрел маршрут, который включает в себя создание моего собственного редактора, такого как упоминания о старте, в this thread, но он не объясняет, как это сделать. Я просмотрел код в this article, но, похоже, много работы, это маршрут, который я должен взять?

Кто-нибудь когда-либо делал это. Любые рекомендации? Лучше ли конвертировать в html или настраивать отображение?

ответ

2

Я не уверен, как идти о замене символов новой строки на «< br/>». Легко ли это сделать?

Вы можете сделать это с помощью Java регулярное выражение:

String raw = "..."; 
    Pattern p = Pattern.compile("\n"); 
    String html = "<HTML>" + p.matcher(raw).replaceAll("<BR>") + "</HTML>" ; 

Я взял на себя смелость добавить ваш HTML-обертку для вас.


редактировать:

Для удовольствия, я принял точку Оскара и принял удар:

Pattern p = Pattern.compile("\\[([^\\]]*)\\]"); 
    raw = p.matcher(raw).replaceAll("<a href=\"$1\">$1</a>"); 
+0

+1 @Victor: Это правильно. Обработка гиперссылок должна быть очень похожей: замените [] на OscarRyz

+0

Я попробовал метод замены строки и не работал. это работает благодаря. – Victor

Смежные вопросы