| Текстовый редактор |
|
|
| Главная страница | Просмотр банковских выписок | Текстовый редактор | Интерпретатор | Игра "Осиновый лес" | CMS | Учёт семян | Складской учёт | Дневник |
|
|
|
Java (11), Swing (Single document interface), в качестве шаблона приложения (BankViewer) Итак, создан просмотрщик банковских выписок. Используя аналогичный подход, можно сделать просмотрщики ещё для многих других вещей. Но это всего лишь просмотрщики. А если попробовать сделать редактор, то окажется, что надо решить массу проблем. Сейчас я не делаю какой-то необычный редактор, не создаю редактор лучше, чем какой-то другой, не пытаюсь с кем-то конкурировать. Я исследую, какие проблемы понадобится решить, и ищу их решения. Это обычный текстовый редактор, который позволяет редактировать простые текстовые файлы. Он сохранил весь сервис, который уже есть в BankViewer. Но он не только открывает имеющиеся файлы, но и создает новые, сохраняет отредактированный текст, следит за тем, чтобы случайно не потерять результат редактирования, логично управляет активностью пунктов меню "Правка". Он умеет не только искать текст, но и изменять один текст на другой. Позволяет установить комфортный размер шрифта, использовать моноширинный шрифт. Но главное, эта программа позволяет понять, как это делается. Для разработки использован Eclipse. Проект расположен здесь: https://github.com/weekend-game/weekendtexteditor/ (EN) и здесь: https://gitflic.ru/project/weekend-game/weekendtexteditor/ (RU). |
| Как запустить программу |
|
Скачайте репозиторий на свой компьютер. Всё необходимое для работы программы расположено в папке app. Зайдите в папку app и запустите программу двойным кликом по BankViewer.jar или, если она не запускается, двойным кликом по BankViewer.bat. Если и последнее не запускает программу, то скачайте и установите Java 11 или новее и снова попробуйте способы, описанные выше. |
| Как открыть проект в Eclipse |
В Eclipse, в меню выберите File – Import... В появившемся окне выберите Existing Projects into Workspace. Укажите папку скаченного вами репозитория и нажмите кнопку Finish. Проект откроется в Eclipse. В Package Explorer (в левой части экрана) дважды кликните на файле WeekendTextEditor.java. Файл откроется для редактирования (в центральной части экрана). Запустите программу на выполнение, нажав Ctrl+F11 или так, как вам удобно запускать программы в Eclipse. |
| Как работать с программой |
|
Этот текстовый редактор написан на основе просмотрщика банковских выписок и унаследовал от него весь пользовательский интерфейс ( см. здесь ). Конечно, теперь открытый файл отображается не в виде таблицы, а как текстовый файл. Появились новые функции. В меню "Файл" появились пункты "Создать", "Сохранить", "Сохранить как...". Они работают так же, как и во всех программах. В меню "Правка" появились пункты "Отменить" и "Повторить". Пункты редактирования текста "Вырезать", "Копировать" активны, если есть выделенный фрагмент текста, а пункт "Вставить" активен, только если ранее было копирование. Появился пункт "Заменить". При выборе этого пункта меню появится диалоговое окно, в котором можно указать строку поиска, строку замены, отметить, следует ли учитывать регистр, указать направление поиска. Кнопка "Найти далее" работает так же, как и в окне поиска. Кнопка "Заменить" заменит найденную строку на строку замены. Кнопка "Заменить всё" заменит все включения в текст строки поиска на строку замены. В пункте меню "Вид" появились пункты "Использовать моноширинный шрифт", "Увеличить шрифт", "Уменьшить шрифт" и "Размер шрифта по умолчанию". |
| Как программа написана |
|
Главным классом приложения является класс WeekendTextEditor. Именно он содержит статический метод main() для запуска программы. В его конструкторе создаётся всё необходимое для работы. Так как этот текстовый редактор написан на основе просмотрщика банковских выписок, он использует все те же объекты для своей работы. Ознакомиться с ними можно здесь. Но есть и новое. Для редактирования текста используется всё та же JEditorPane, но теперь она вынесена в отдельный класс Editor, в котором реализуется множество функций. Именно здесь находятся методы, реализующие изменение шрифта и его размеров, методы поддержки пунктов меню "Отменить" и "Повторить", методы выделения, копирования и вставки текста и некоторое другое. Классы Replacer и ReplacerFrame похожи на Finder и FinderFrame, но предназначены для выполнения не только поиска, но и замены текста. Более подробно о работе программы можно узнать, скачав проект, открыв его в Eclipse, читая тексты классов, внося изменения, запуская программу и наблюдая, что из этого получается. |
| Итоги |
|
Отличная практика! Редактор можно улучшать до бесконечности, но нужно уметь остановиться. |
|
|
| Главная страница | Просмотр банковских выписок | Текстовый редактор | Интерпретатор | Игра "Осиновый лес" | CMS | Учёт семян | Складской учёт | Дневник |
|
Смотрите мои проекты на https://github.com/weekend-game (EN) или https://gitflic.ru/user/weekend-game (RU). Пишите мне по адресу weekend_game@mail.ru |