Каковы плюсы и минусы использования FXML или отказа от использования FXML для разработки приложений JavaFX?
Какой подход следует использовать для разработки корпоративного приложения JavaFX?
Каковы плюсы и минусы использования FXML или отказа от использования FXML для разработки приложений JavaFX?
Какой подход следует использовать для разработки корпоративного приложения JavaFX?
Минусы FXML: для загрузки и отображения требуется немного больше времени.
Плюсы FXML:
Обязательно используйте FXML в корпоративных приложениях!
Я бы добавил к списку Юргенса два контра.
Если вы работаете с FXML, создание экземпляра вашего представления неудобно. По крайней мере, с моей точки зрения.
Node explorer = new MyExplorerWidget();
or
Node explorer = cdicontainer.newInstance(MyExplorerWidget.class);
приятнее, чем
FXMLLoader loader = new FXMLLoader(getClass().getResource("com.mycompany.some.very.long.name.MyExplorerWidget.fxml"),explorerwidgetresouces);//Of course we want our app internationalized
Node explorer = loader.load();
Другое дело, что FXML статичен. Если вы хотите создать свой пользовательский интерфейс во время выполнения в зависимости от какой-либо модели, вы все равно будете писать код пользовательского интерфейса. В итоге я получил бесполезные файлы fxml, подобные этому PropertyGrid.fxml
<AnchorPane xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8" fx:controller="PropertyGridController">
<children>
<VBox fx:id="vbox" layoutX="63.0" layoutY="-28.0" prefHeight="172.0" prefWidth="163.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0" />
</children>
</AnchorPane>
И PropertyGridController
.
public class PropertyGridController{
@FXML
VBox vbox;
....
public void setModel(PropertySheet model){
//.... tons of code to generate the actual property grid and add it to the view
}
}