Имам малък работещ текстов редактор, написан на Java с помощта на JTextPane, и бих искал да оцветя конкретни думи. Ще работи по същия начин, по който ключовите думи в Java (в рамките на Eclipse) са оцветени; ако те са ключова дума, те се маркират, след като потребителят приключи с въвеждането им. Нов съм в текстовите редактори, реализирани в Java, някакви идеи?
Как да оцветявате ключови думи в текстов редактор на Java?
Отговори (1)
В компютърните науки лексикалният анализ е процес на преобразуване на поредица от знаци в поредица от токени. Програма или функция, която извършва лексикален анализ, се нарича лексикален анализатор, лексер, токенизатор [1] или скенер. Лексерът често съществува като отделна функция, която се извиква от анализатор или друга функция, или може да се комбинира с анализатора при анализиране без скенер.
Като каза това, това не е тривиална задача. Нуждаете се от библиотека от високо ниво, за да направите това. Ще улесни задачата ви. Какъв е изходът?
Използвайте ANTLR. Ето какво пише на сайта му:
ANTLR е мощен генератор на анализатор, който можете да използвате за четене, обработка, изпълнение или превод на структуриран текст или двоични файлове. Той се използва широко в академичните среди и индустрията за изграждане на всякакви езици, инструменти и рамки....
IDE на NetBeans анализира C++ с ANTLR.
Ето, проблемът е решен. Авторът на ANTLR също има книга за това как да използвате ANTLR, която може да искате да купите, ако искате да научите как да я използвате.
След като ви даде достатъчно разтопяване на мозъка, има готово решение за вас: JSyntaxPane. Точно като всеки JCOmponent, вие го инициализирате и го поставяте в JFrame. Работи като чар. Поддържа много езици освен Java
JSyntaxPane
вместо това ;-) Знам, че сте прост човек. :-P - person An SO User   schedule 20.10.2013