Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подсветка синтаксиса 
:(
    Опции темы
korob2001
Дата 8.5.2007, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



Привет!
Дописал наконец-то текстовый редактор, в качестве упражнения.
Всё работает, но не могу понять по какому принципу мне подсветить синтаксис, ну скажем той же Java или Perl?
Для начала создал 2 XML файла для этих двух языков. Добавил по несколько слов из каждого языка в соответствующий файл + форматирование для каждого из слов. А что делать дальше не знаю. Для редактирования текста использовал JTextArea, просканировал полностью этот класс и документацию к нему. Но ничего так и не нашёл о том, как реализовать подсветку синтаксиса.
Цвет изменить могу, но когда делаю это, то получается, что меняется цвет всего текста в JTextArea. ;((((((

ЗЫ: Если, что-то не понятно написал, прозьба не расстраиваться.  Java учу в свободное время, которого как всегда не хватает, для себя. Просто нравится мне этот язык.  smile 
Если понадобятся исходники, могу выложить.


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
Hidrag
Дата 8.5.2007, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 877
Регистрация: 9.4.2005
Где: JDK

Репутация: 2
Всего: 25



Как то я тоже хотел написать редактор кода для Perl на Java, но тогда забросил эту идею.
Мне посоветовали сделать так:

Цитата

Серьезная задача для Junior developer...
Расскажу в общих чертах.. Я кстати ранее писал про это и был там не совсе прав.. хотя то решение тоже работало, но на самом деле было сильно тормозным. 
Итак...
Берешь JEditorKit реализуешь как нужно основные методы... читай в доке.

Берешь JEditorPane. проставляешь ему этот EditorKit.. как это сделать тоже разберешься там все очевидно.

Далее самое интересное... парсинг текста
Берешь PlainDocument (!!) именно его.. ибо работа со StyledDocument по началу выглядит более логичной, но это не так... как оказалось. Документ состоит из Element.
Добавляешь туда DocumentListener, который парсит текст и разбивает его на Element'ы. В EditorKit переопределяешь метод, который возвращает ViewFactory. То ViewFactory, которое ты туда, вставишь будет создавать View кусков текста в зависимости от типов элементов. Именно это View, в твоем случае будет, определять шрифт и цвет твоего текста.

и счастье должно наступить



--------------------
user posted image
PM WWW ICQ   Вверх
korob2001
Дата 8.5.2007, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



Спасибо большое за информацию, сейчас буду разбираться.
Кстати, вот ещё нашёл на форуме похожую тему. Там тоже сказано о некоторых классах, которые могут пригодиться.
Правда я использую IDE Net Beans 5.5

Это сообщение отредактировал(а) korob2001 - 8.5.2007, 16:22


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
Hidrag
Дата 8.5.2007, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 877
Регистрация: 9.4.2005
Где: JDK

Репутация: 2
Всего: 25



Возможно поможет это:
http://rtext.sourceforge.net/
Это редактор с подсветкой сделан на java исходники открыты


--------------------
user posted image
PM WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0675 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.