Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将两个场景合并为一个场景?_Java_User Interface_Javafx_Scene_Pane - Fatal编程技术网

Java 如何将两个场景合并为一个场景?

Java 如何将两个场景合并为一个场景?,java,user-interface,javafx,scene,pane,Java,User Interface,Javafx,Scene,Pane,有没有一种方法可以将两个javaFx场景合并成一个场景(然后将该场景指定给一个舞台),或者同时将两个场景指定给一个舞台,以便它们在舞台上并排出现 目标:我有一个显示计算器的场景,我有一个显示时钟的场景。我想让它们并排(计算器在左边,时钟在右边)在同一个舞台上(不使用场景生成器) 任何帮助都将不胜感激 是的,您可以在javafx中使用子场景执行此操作, 子场景类似于可以添加到布局中的场景 你可以这样做 @Override public void start(Stage primar

有没有一种方法可以将两个javaFx场景合并成一个场景(然后将该场景指定给一个舞台),或者同时将两个场景指定给一个舞台,以便它们在舞台上并排出现

目标:我有一个显示计算器的场景,我有一个显示时钟的场景。我想让它们并排(计算器在左边,时钟在右边)在同一个舞台上(不使用场景生成器)


任何帮助都将不胜感激

是的,您可以在javafx中使用子场景执行此操作, 子场景类似于可以添加到布局中的场景

你可以这样做

    @Override
    public void start(Stage primaryStage) throws Exception {
        StackPane layoutOne = new StackPane();
        Label labelOne = new Label("One");
        layoutOne.getChildren().add(labelOne);
        SubScene subSceneOne = new SubScene(layoutOne,300,100);

        StackPane layoutTwo = new StackPane();
        Label labelTwo = new Label("Two");
        layoutTwo.getChildren().add(labelTwo);
        SubScene subSceneTwo = new SubScene(layoutTwo,300,100);

        VBox root = new VBox(10);
        root.setAlignment(Pos.CENTER);
        root.getChildren().addAll(subSceneOne,subSceneTwo);
        Scene mainScene = new Scene(root,300,210);
        primaryStage.setScene(mainScene);
        primaryStage.show();
    }

希望这就是你想要的,你也可以查看更多的

不,一个
舞台
只能有一个场景。您应该将显示每个组件的根节点(即设置为每个场景根的任何组件)放入
HBox
,并使用
HBox
作为新场景的根节点。如果你能给出一些关于你是如何构造事物的想法,例如,你用什么样的类来表示时钟和计算器,这可能更容易回答。为什么呢?为什么不去掉子场景,只做
root.getChildren().addAll(layout1,layout2)?是的,在这种情况下,他确实不需要,因为他可以在同一布局中包括两个场景的父场景,但我在使用3D Api时需要子场景,如果您尝试将2D场景与3D场景相结合,子场景将非常有用,您将需要一个3D子场景(启用深度测试并消除锯齿,如果您愿意的话)然后将其添加到2D场景中的布局中。有人可能会觉得这很有用。