![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| malah |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 28.10.2006 Репутация: нет Всего: нет |
Я вас приветствую!
Прочитал тему и заинтересовался, ведь скоро самому бакалавра сдавать, суть похожа, но конь не валялся Есть вот такая статейка тут . А вот у меня какой вопрос: редактору передается HTML код, но не простой.... а именно в нем есть не простой тег(специальная конструкция), который запрещает редактировать текст внутри себя. Т.Е. необходимо чтобы этот текст отображался в JTextPane, но его нельзя было изменять, а все остальное можно... Кроме этого требуется ввести свой атрибут, с той же целью, но чтоб его можно было добавлять в обычные теги. Как сделать ума не приложу, может кто сможет мне помочь... С JAVA пока очень слабо знаком, читать в инсте будут только осенью :( |
|||
|
||||
| nornad |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 6 Всего: 31 |
На форумах на Sun'е я находил что-то про то, как добавить парсеру свой тэг. Я там до сих пор копаюсь, так что ежели снова увижу - дам ссылку.
Суть теории - сделать объект своего тэга на основе неизвестного, добавить в парсер и зарегистрировать его там. Насчёт перехвата обработки тэга не скажу, но возможность должна быть. P.S. Вообще у меня сложилось впечатление, что визуальный редактор HTML на жабе делать почти никто не умеет. Ну практически совершенно нет в сети информации. Добавлено через 2 минуты и 2 секунды На бакалавра сдавать в конце будущего учебного года? Время, в принципе достаточно, чтобы нормально разобраться. -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
|||
|
||||
| malah |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 28.10.2006 Репутация: нет Всего: нет |
Если бы, десятого мая (ЭТОГО ГОДА) нужно сдать в деканат тему и план... |
|||
|
||||
| nornad |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 6 Всего: 31 |
malah, посмотри тут - что-то про нестандратные тэги.
-------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
|||
|
||||
| nornad |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 6 Всего: 31 |
Два способа вставки гиперссылки:
1. используя insertHTML()
2. используя механизм стандартных тэгов эдиторкита (предпочтительнее)
P.S. Не сочтите гиперссылки за рекламу - просто я у себя тестил так, а придумывать что-то другое лень. -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
||||
|
|||||
| nornad |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 6 Всего: 31 |
Пока что не могу победить закавыку с добавлением гиперссылки (или другого тэга со схожей структурой).
Заключается закавыка в том, что если перед добавлением курсор стоял в конце документа, то после добавления тэга не получается написать ничего за ним. Всё, что будете вводить, будет добавляться внутрь этого тэга. А вот как выйти за его пределы?.. Кстати, при добавлении списков схожая проблема - новый текст будет добавляться в первый и единственный элемент списка. Сейчас пытаюсь сделать так, чтобы по нажатию Enter добавлялся новый элемент списка, но потом будет проблема определения, надо ли завершить список. И снова вернёмся к проблеме выхода за пределы последнего тэга. В общем, как-то странно Сановцы реализовали эту поделку... То ли они хтмл не любят, то ли лень им было нормально всё сделать... -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
|||
|
||||
| nornad |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 6 Всего: 31 |
С установкой фона в редакторе интересная история.
Можно, конечно, утсановить с помощью setBackground(), но тогда цвет установится у компонента, а не в хтмле. Попытки установить при помощи задания атрибутов ни к чему хорошему не приводят - либо не ставится, либо внутрь body вставляется параграф, содержащий ещё один body, у которого и будет проставлен цвет фона. Сегодня нашёл на форумах Sun вариант установки фона через внутренности документа. Фон устанавливается прекрасно. Одна проблема - "отваливается" остальное, например, отображение списков. В конце концов, я решил проблему радикально при помощи топора, зубила и напильника:
-------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
|||
|
||||
| nornad |
|
||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 6 Всего: 31 |
Сегодня я расскажу, как работать с ненумерованными списками.
Вот как можно добавить список в редактор:
bulAction нужен для того, чтобы вставлять список на уровне тэга BODY, а ulAction - на уровне тэга LI (чтобы была возможность делать вложенные списки). Если вам потребуется иметь возможность вставлять списки в другие тэги (например, в P), то потребуются соответствующие экшены. Вообще, на мой взгляд, реализовали сановцы это дело довольно отвратно. Идея, может быть, изначально и была великолепной, но вот реализация... Если вы ещё не догадались о чём, я - поясню. Допустим, у нас есть хтмл вида
и мы желаем вставить список в текущую позицию, которая соответствует пробелу внутри тэга Р. Используем "стандартный" вариант экшена с указанием в качестве родительского тэга BODY. И что же мы получаем? Вот что:
Несколько неожиданно, не правда ли? Но это ещё не всё. Мало просто добавить список в JTextPane. Для того, чтобы по нажатию Enter добавлялся новый элемент списка ("умолчальное" поведение сановской поделки - перевод строки), надо отлавливать нажатие клавиши, проверять, где мы находимся (в каком тэге) и производить магические пассы. Вот пример, который приближает работу списка к том, что мы привыкли видеть в большинстве редакторов:
-------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
||||||||
|
|||||||||
| nornad |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 6 Всего: 31 |
С отступами нашёл способ через стиль атрибута, но есть загвоздка - работает это дело на уровне стилей текста в компоненте, а в хтмл не попадает.
Если у кого-нибудь есть идеи, как сделать нормально - милости просим. Я пытался делать через хтмл-атрибут style, но ничего не вышло - компонент просто проигнорировал установку атрибута. -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
|||
|
||||
| nornad |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 6 Всего: 31 |
Вот код для организации отступов. Жаль, что нормального способа (чтобы он отражался в хтмле) я пока не нашёл.
Добавлено через 3 минуты и 58 секунд Думаю, на этом пока и закончу. Вопрос помечу решённым, т.к., в принципе, основные цели достигнуты. -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
|||
|
||||
| jecl |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 12.10.2007 Репутация: нет Всего: нет |
Привет!
Есть такой вопрос. Как сказать JTextPane игнорировать незнакомые теги? Например, сохранил я из опен офиса свой дукумент в хтмл, и пытаюсь отобрахить его в JTextPane. При запуске машина пишит и ничего не выводится. А загвоздка в теге типа <META HTTP-EQUIV='CONTENT-TYPE' CONTENT='text/html; charset=utf-8'>. После их удаления, все ок. спс. Это сообщение отредактировал(а) jecl - 19.3.2008, 19:09 |
|||
|
||||
| filipp76 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 241 Регистрация: 4.4.2007 Где: Украина, Киев Репутация: 1 Всего: 1 |
Меня интересует добавление гиперссылок, использовал первый метод из двух предложенных, все хорошо но при клике на гиперссылку ничего не открываеться )), как сделать чтоб ссылка открывалась в браузере по умолчанию? (Сафари, Опера и т.д.)
|
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |