我想在stackpane中创建一个场景,所以我只是使用了这一块 代码
StackPane vb = new StackPane();
Scene scene = new Scene(vb);
vb.getParent().add(scene);
但它显示的错误类似于The method add(Scene) is undefined for the type Parent
。
有人可以建议我在堆叠窗格中添加场景吗?
答案 0 :(得分:1)
类型为Parent的方法add(Scene)未定义。
在Parent中没有任何类型参数的add方法。不确定你的意思。
来自Scene类的Javadoc:
JavaFX Scene类是场景中所有内容的容器 曲线图。
Scene不会扩展Node,因此无法添加到其他节点。它的目的是成为舞台的轻量级部分。
分页: 你可以:
我认为对于分页,第3个选项最适合,因为您可能希望在分页时保留标题(菜单,工具栏,...)和页脚(状态栏,...)。
答案 1 :(得分:1)
我发现了一个更好的解决方案:将您的root添加到StackPane
,然后将其添加到场景中。
像您自己一样,我试图在彼此之间添加多个场景。您正在做的问题是Scene
无法添加到任何内容。
所以,相反:
// Create your StackPane to put everything in
StackPane stackPane = new StackPane();
// Create your content
// ... Ellipse
Ellipse ellipse = new Ellipse(110, 70);
ellipse.setFill(Color.LIGHTBLUE);
// ... Text
Text text = new Text("My Shapes");
text.setFont(new Font("Arial Bold", 24));
// ... GridPane
Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
然后将它们全部一起添加到StackPane中,然后将StackPane添加到场景中。
// add all
// now all my content appears on top of each other in my stackPane
// Note: The order they stack is root -> ellipse -> text
stackPane.getChildren().addAll(root, ellipse, text);
// make your Scene
Scene scene = new Scene(stackPane, 300, 275, Color.BLACK);
// finalize your stage
primaryStage.setScene(scene);
primaryStage.show();