JavaFX - MeshViews 在屏幕上不可见

JavaFX - MeshViews not visible on screen

我正在尝试添加一个组,其中包含几个从文件中读取的 MeshViews 到 borderlayout 的中心。我正在使用 FXML 文件来定义布局。我给了中心 AnchorPane 一个 fx:id "centerPane" 和包含 MeshViews 的组 fx:id "centerGroup"。我没有收到任何错误,但屏幕中央窗格中没有显示任何内容。当我第一次开始手动创建一个网格视图时,我正在做类似的事情,它会出现在中心窗格中(但后来我使用了 borderpane 对象的 setCenter 方法(我还为其分配了一个 fx:id 名称这样我就可以从控制器代码中访问它。我将包括 fxml 部分和下面直接涉及的控制器的行。如果有人能帮我弄清楚如何让网格视图出现,我将非常感谢你的帮助。我已经阅读了大部分 JavaFX 书籍,但出于某种原因仍在为此苦苦挣扎。谢谢。

来自 FXML 文件:

<center>
  <VBox prefHeight="400.0" prefWidth="640.0">
    <children>
      <AnchorPane fx:id="centerPane" maxHeight="-1.0" maxWidth="-1.0" 
           prefHeight="-1.0" prefWidth="-1.0" VBox.vgrow="ALWAYS">
        <children>
              <Group fx:id="centerGroup" />
        </children>
      </AnchorPane>
    </children>
  </VBox>
</center>

来自控制器文件的行:

@FXML
private AnchorPane centerPane;

@FXML
private Group centerGroup;

(inside of a for loop I add the meshviews from an array list into the group)
for( - ; - ; - ){
  centerGroup.getChildren().add(meshViews[i]);
}

PerspectiveCamera camera = new PerspectiveCamera(false);

PointLight redLight = new PointLight();
redLight.setColor(Color.RED);

PointLight greenLight = new PointLight();
greenLight.setColor(Color.GREEN);

( I have tried all three below.  middle one gave duplicate child error. )
//borderPane.setCenter(centerGroup);
//centerPane.getChildren().addAll(centerGroup, redLight, greenLight);
centerPane.getChildren().addAll(redLight, greenLight);

我相信这些代码足以描绘出我要修复的问题。我将附上一张图形用户界面的图片,以显示当代码运行并且我打印输出到控制台时,从文件中读取的网格视图的数量是正确的,屏幕上没有任何显示。感谢您的帮助。

你需要在舞台上添加相机

yourStage.setCamera(camera);

在您的组中添加相机

centerPane.getChildren().add(camera);