JavaFX中的Parent vs BorderPane

时间:2016-02-13 11:42:58

标签: java javafx

使用Parent来定义场景而不是BorderPaneAnchor等是否是一个很好的实践?

以这种方式使用Parent有什么好处?

public class Main extends Application {
    @Override
    public void start(Stage primaryStage) {
        try {
            Parent root = FXMLLoader.load(getClass().getResource("Main.fxml")); //Insted of this:   BorderPane root = (BorderPane)FXMLLoader.load(getClass().getResource("Main.fxml"));
            Scene scene = new Scene(root,400,400);
            scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
            primaryStage.setScene(scene);
            primaryStage.show();
        } catch(Exception e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        launch(args);
    }
}

1 个答案:

答案 0 :(得分:2)

这是一种很好的做法,因为Parent只是一个可以拥有子节点的NodeParentNode的子类)。

使用Parent代替BorderPane,您使用的是更通用的类型,而不是将其绑定到某种类型的窗格。这样做的原因与将ArrayList声明为List类型的对象的原因相同。如果明天您正在加载VBox,则无需修改代码。