【问题标题】:JavaFX - How to add array of MeshViews to group or sceneJavaFX - 如何将 MeshViews 数组添加到组或场景
【发布时间】:2018-07-28 17:49:51
【问题描述】:

更新:我更新了我的代码以循环遍历网格视图列表并使用 group.getChildren.add(meshview[i]) 将每个添加到组中,但仍然没有显示在屏幕上。谢谢。

我正在尝试将 MeshView 类型的数组列表添加到基于 JavaFx 的 GUI 中的场景中。我能够得到一个初始示例来工作,它是一个 MeshView,但现在我有一个案例,从文件中读取的数据会导致一个 MeshView 类型的数组。我无法在 Group 类型上找到“add”或“addAll”类型的函数来让我遍历所有元素并添加它们,我无法让 Group 构造函数让我在参数中添加列表。我正在使用一个组来包含它们,因为整个 GUI 都使用了使用 FXML 文件定义的 BorderLayout。所以我的初始版本将网格视图与一些点光源一起添加到一个组中,然后使用它的 set 方法将该组添加到边框布局的中心。任何帮助,将不胜感激。谢谢。

附言。我想我可能刚刚找到了答案。我忘了 add 方法在 get children 下: group.getChildren().addAll(meshView, pointLight); 正如上面来自另一个答案的行所示。但是我仍然有兴趣听到最好的方法,因为我仍然对如何处理您说的 20 个网格视图构成要在屏幕上显示的一部分的情况感到困惑,并且您想要组合这些和适当的灯光等并缩放以适应中心或边界布局。我猜我可以首先使用添加所有网格视图,然后添加灯光,但不确定。再次感谢。

【问题讨论】:

    标签: javafx javafx-3d


    【解决方案1】:

    您始终可以将网格视图添加到任何节点类型的对象,例如 GroupBorderLayout

    root.getChildren().add(meshView);
    

    你可以尽可能多地添加到这个root对象并在场景中翻译meshView

    meshView.setTranslateX(200);
    meshView.setTranslateY(200);
    meshView.setTranslateZ(200);
    

    并设置相机和光点配置并将它们也添加到场景中

    【讨论】:

    • 如果我在您的示例中使用说我正在循环并在 MeshView 列表数组中添加所有网格视图的循环向根目录添加多个网格视图,我会先这样做然后再执行灯光、相机等的任何设置。谢谢。
    • 灯光和相机被添加到场景而不是根,所以它在循环之外
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-30
    • 2015-09-19
    • 2016-09-02
    • 2018-07-19
    • 2015-11-21
    • 1970-01-01
    相关资源
    最近更新 更多