Можно ли построить простой текстовый редактор в Java без использования JTextArea? - PullRequest
1 голос
/ 06 марта 2012

У меня есть вопросы по моему окончательному проекту на моем факультете ИТ. Я должен сделать простой текстовый редактор (например, блокнот) без использования JTextArea (GUI Java), я должен сделать свой собственный JTextArea ..

Идея / Тема = Собственный текстовый редактор

Алгоритмы = пока не имеет ни малейшего представления

Структура данных = Канат (член двоичных деревьев)

Требование = Набор без JTextArea...

Возможно ли это сделать?Может ли панель (или что-то подобное) иметь слушателя или заставить слушателя сделать это?просто подумав, первый шаг, я просто хочу попробовать набрать текст на панели, абсолютно необходимые алгоритмы, но я пока не получаю правильных алгоритмов .. Это возможно?

Я думаю, что для текста, который я печатаю, сохраняетсяк дереву .. Это веревка (член двоичных деревьев) для моей структуры данных?

Спасибо за помощь ...

1 Ответ

5 голосов
/ 07 марта 2012

Это возможно.

Используйте, как вы упомянули, JPanel присоединение KeyListener и MouseListener.

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

Вам нужно использовать позицию каретки (поле int), чтобы указать, где должно произойти редактирование.

Вам необходимо поле «Шрифт», чтобы сохранить всю информацию о шрифте, которая будет использоваться в редакторе.

Переопределить paintComponent() и использовать FontMetrics для измерения текста и вычисления необходимой ширины / высоты.Для начала я бы создал текстовую область без переноса строк.

Реализация методов viewToModel / modelToView.Они должны рассчитать положение каретки для заданных x, y и x, y для заданной позиции каретки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...