Игра выходного дня
Все упомянутые бренды, компании и товарные знаки являются собственностью их соответствующих владельцев.
Здравствуйте!
Меня зовут Юрий. Я работаю программистом. В работе использую весьма экзотические языки программирования, СУБД и прочие связанные с программированием технологии. Ну, так получилось. Хотелось бы попрактиковаться в том, с чем по долгу службы я не сталкиваюсь. Для этого я выполню ряд проектов. Для каждого такого проекта будет создан репозиторий. Полное описание каждого я буду размещать на сайте https://weekend-game.github.io. Как всё это развивалось, смотрите в блоге.
Просмотрщик необычных файлов (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.
Система управления контентом (CMS)
Java, Swing, SimpleLibrary
Появляются идеи новых проектов, и они должны получать свою страничку на сайте. А добавление одного нового проекта вызывает необходимость внести изменения на все страницы сайта. Затем приходится долго проверять созданное. И да, можно, конечно, и так, но зачем?
Я делаю собственную CMS (систему управления контентом) для ведения своего сайта. Проблема решена! Конечно, можно было бы взять что-то готовое, но что? И сколько времени мне понадобилось бы для его изучения? Удалось бы сделать сайт таким, каким я его придумал, или всего лишь примерно таким? Думаю, язык программирования Java — это лучшая в мире CMS :-)
Кроме того, создание этой CMS позволяет попрактиковаться в работе с файлами на Java, в создании пользовательского интерфейса с помощью Swing, в частности: в работе с текстовыми полями, радиокнопками, комбобоксами и редактировании списка.
Подробнее тут: CMS.