Я пытаюсь добавить группу, содержащую несколько MeshView, которые были прочитаны из файла в центр бордюра. Я использую файл FXML для определения макета. Я дал центру AnchorPane fx:id "centerPane" и группу, содержащую MeshViews, fx:id "centerGroup". Я не получаю никаких ошибок, но на экране в центральной панели ничего не появляется. Я делал то же самое, когда впервые начал, где я вручную создал представление сетки, и оно появилось в центральной панели (но затем я использовал метод setCenter объекта borderpane (которому я также присвоил имя 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);
Я считаю, что этого кода достаточно, чтобы нарисовать картину того, что я пытаюсь исправить. Я приложу изображение графического интерфейса, чтобы показать, что пока код работает, и я вывожу в консоль количество просмотров сетки, считанных из файла, и число правильное, на экране ничего не появляется. Спасибо за вашу помощь.
BorderPane
имеет проблемы с дочерними элементами, которые не добавляются через свойстваcenter
,left
,right
,top
илиbottom
. Вряд ли это подходящий макет для 3D-сцены. Кроме того, без знаний оMeshView
s просто невозможно определить, отбракованы ли сетки или скрыты ближними/дальними плоскостями отсечения... - person fabian   schedule 29.07.2018