JavaFX在一个场景中有多个窗格?

Hat*_*end 6 java user-interface javafx pane

我正在尝试创建一个应用程序,它将在顶部有一个日期(总是自动居中),而底部的内容不会与任何方向对齐.

我认为最好的办法是:

Pane normalLayout = new Pane();
StackPane centeredLayout = new Stackpane();
Label centeredText = new Label("I want this text centered!");
Button unorganizedButton = new Button("Press me");
centeredLayout.getChildren().add(centeredText);
normalLayout.getChildren().add(unorganizedButton);
Run Code Online (Sandbox Code Playgroud)

但后来我做不了类似的事情:

Scene myScene = new Scene(centeredLayout, normalLayout, 500, 500);
Window myWindow = new Window();
myWindow.setScene(myScene);
myWindow.show();
Run Code Online (Sandbox Code Playgroud)

那么怎么做呢?如何在同一场景中存在多个窗格?

Mar*_*cel 11

它自己的场景只能有一个窗格.因此,如果您想在场景中使用2个窗格,则需要3个窗格.

Scene  
  |   
  V
Root Pane (Vbox for example)
  |                   |
  V                   V
Pane1                Pane2
Run Code Online (Sandbox Code Playgroud)

在您的代码中,这可能如下所示:

StackPane rootPane = new StackPane();
Scene scene = new Scene(rootPane,...);
Pane pane1 = new Pane();
Pane pane2 = new Pane();
rootPane.getChildren().addAll(pane1,pane2);
Run Code Online (Sandbox Code Playgroud)

根据应用程序的布局方式,您必须选择正确的Pane实现.

作为一个小技巧,熟悉所有布局容器,尝试使用SceneBuilder应用程序.http://gluonhq.com/open-source/scene-builder/

也许这个链接将帮助您了解布点JavaFX中是如何工作的: http://docs.oracle.com/javafx/2/scenegraph/jfxpub-scenegraph.htm https://docs.oracle.com/javafx/2/layout/ builtin_layouts.htm