Все началось со Swing. Там вроде все понятно: создаешь классы, делаешь их взаимодействие, вешаешь слушателей на кнопки... Потом я решил быстро переписать программу на JavaFX.
Первом делом прочел 3 главы о JavaFX в книге Шилда "Java 8. Полной руководство". После этого начал читать "introducing javafx 8 programming" того же автора. Показалось, что управлять JavaFX примерно так же, как и Swing. НО... В процессе разработки возникает огромное множество вопросов, которых не было в Swing.
Например, почему в IntelliJ Idea есть пункт создания JavaFX-проекта, если можно любой класс унаследовать от Application ? Как создавать приложения с использованием FXML ? Как связан fxml-файл с моими классами ? Чем собираются JavaFX - приложения ? Стоит ли использовать SceneBuilder ? Как пользоваться MVC моделью ? Что вообще происходит ?
В общем, не смотря на поэму выше, вопрос простой - как правильно начать JavaFX проект и как его строить в дальнейшем, чтобы было минимум проблем ? Есть ли какие-нибудь источники, которые смогут ответить на мои вопросы ?
Ответ
Ну чтож. Я тебе мозги запудрил, я тебе и объясню.
В идее как и во всех нормальных IDE есть заготовки приложений. Да ты можешь наследовать любой класс от Application. Если в заготовке идеи это сделано с основным класом, это еще не запрещает тебе делать по другому.
Что из себя представляет приложение с FXML. Его можно сравнить с вебсайтом:
FXML это файл разметки. Там описаны элементы интерфейса: их имена, расположение, первичные настройки, а также имена методов, которые будут вызываться при том или ином действии.
Также он привязывается к контроллеру. Это такое связуещее звено между логикой твоего приложения и интерфейсом. Там объявлены объекты элементов интерфейса, с которыми тебе нужно взаимодействовать, а также методы, срабатывающие при работе с твоим интерфейсом (этакие eventHandlerы для кнопок и прочего). При этом тебе не нужно самому инициализировать и настраивать элементы интерфейса в нем. Экземпляр этого класса со всеми привязками и активным наполнением создается при загрузке fxml.
Приложения JavaFX собираются так же как и обычные. Внешних костылей не используется, все написано на родном коде и встроено в JDK (начиная с 8)
SceneBuilder - визуальный редактор верстки интерфейса. Там ты наглядно видишь, что из себя будет представлять интерфейс приложения. И не надо будет по сотню раз перезапускать приложение, сверяясь, правильно ли ты отверстал таблицу.
Комментариев нет:
Отправить комментарий