Игра выходного дня
Все упомянутые бренды, компании и товарные знаки являются собственностью их соответствующих владельцев.
Здравствуйте!
Меня зовут Юрий. Я работаю программистом. В работе использую весьма экзотические языки программирования, СУБД и прочие связанные с программированием технологии. Ну, так получилось. Хотелось бы попрактиковаться в чём-то, с чем по долгу службы я не сталкиваюсь. Как всё это развивалось смотрите тут: Блог
Просмотрщик необычных файлов (BankViewer)
Java, Swing (Single Document Interface)
Мой знакомый получает банковские выписки в текстовом формате, где каждое поле задаётся парой ключ-значение. Эти файлы он загружает в информационную систему. Иногда возникают проблемы: то дата платежа в выписке указана в странном формате, то вместо ИНН загружается ОКАТО, а то и вовсе нужного поля в файле нет. При просмотре файла в текстовом редакторе можно найти причину любой проблемы, но это очень неудобно. Было бы гораздо удобнее открыть файл в программе и увидеть банковскую выписку в виде таблицы, где каждая строка представляет собой отдельный платёж. Сразу будет видно, какие там платежи, от кого, кому, какие значения записаны в каждой колонке таблицы.
Именно это и делает эта программа. Но кроме того, она позволяет понять, как из немного Java и немного Swing сделать: меню, инструментальную линейку, строку состояния, контекстное меню, диалог открытия файла, отображение файла в виде таблицы, поиск, Drag & Drop, использование L&F и собрать всё это вместе в виде SDI.
Подробнее тут: BankViewer.
Простая библиотека (SimpleLibrary)
Java, Swing
При создании BankViewer стало понятно, что некоторые классы, которые потребовалось создать для этой программы, будут нужны во многих других подобных программах. Всегда будет необходимо уметь выдавать пользователю сообщение, оснастить приложение статусной панелью, сделать приложение локализованным, сохранять какие-то настройки, работать с Look and Feel, помнить последние открытые файлы, иметь заготовки для часто используемых Actions, а также уметь быстро и удобно размещать поля ввода в окнах. Вот именно всё это и было сосредоточено в пакете game.weekend.simplelibrary при разработке BankViewer.
Здесь я вынесу этот пакет из BankViewer в отдельный модуль для использования в дальнейших проектах.
Подробнее тут: SimpleLibrary.
Текстовый редактор (TextEditor)
Java, Swing (Single document interface), SimpleLibrary, в качестве шаблона приложения BankViewer
Итак, создан просмотрщик банковских выписок. Используя аналогичный подход, можно сделать просмотрщики ещё для многих других вещей. Но это всего лишь просмотрщики. А если попробовать сделать редактор, то окажется, что надо решить массу проблем. Сейчас я не делаю какой-то необычный редактор, не создаю редактор лучше, чем какой-то другой, не пытаюсь с кем-то конкурировать. Я исследую, какие проблемы понадобится решить, и ищу их решения.
Это обычный текстовый редактор, который позволяет редактировать простые текстовые файлы. Он сохранил весь сервис, который уже есть в BankViewer. Но он не только открывает имеющиеся файлы, но и создает новые, сохраняет отредактированный текст, следит за тем, чтобы случайно не потерять результат редактирования, логично управляет активностью пунктов меню “Правка”. Он умеет не только искать текст, но и изменять один текст на другой. Позволяет установить комфортный размер шрифта, использовать моноширинный шрифт, если это будет удобно в каком-то случае.
Подробнее тут: TextEditor.
Библиотека редактора (EditorLibrary)
Java, Swing, SimpleLibrary
В различных проектах может понадобиться использование простого текстового редактора как части проекта. Текстовый редактор должен не только уметь работать с текстом, но и открывать файлы, сохранять их, а также уметь делать поиск в тексте, замену одних слов (подстрок) на другие. Вот именно всё это и было сосредоточено в пакете game.weekend.editorlibrary при разработке TextEditor.
Здесь я вынесу этот пакет из TextEditor в отдельный модуль для использования в дальнейших проектах.
Подробнее тут: EditorLibrary.