我正在尝试添加一个组,该组包含几个从文件读取到边框布局中心的网格视图。我正在使用fxml文件定义布局。我给了中心锚窗格一个fx:id“centerpane”,给了包含网格视图的组一个fx:id“center group”。我没有得到任何错误,但是中间窗格的屏幕上没有显示任何内容。我刚开始做类似的事情时,我手动创建了一个meshview,它会出现在中心窗格中(但后来我使用了borderpane对象的setcenter方法(我还为它分配了一个fx:id名称,这样我就可以从控制器代码中访问它)。我将包括fxml部分和来自下面控制器的直接相关线路。如果有人能帮我弄清楚如何使网格视图显示出来,我会非常感谢他的帮助。我读过大多数javafx的书,出于某种原因,我还是很难理解。谢谢,
从fxml文件:
<center> <vbox prefheight=“400.0”prefwidth=“640.0”> <儿童> <anchorbane fx:id=“centerpane”maxheight=“-1.0”maxwidth=“-1.0” prefheight=“-1.0”prefwidth=“-1.0”vbox.vgrow=“始终”> <儿童> <group fx:id=“centergroup”/> </children> </AnchorPane> </children> &vtbox & gt; 和/中心& GT; < /代码> 来自控制器文件的行: fxml前的代码 私人锚窗格中心窗格; @ FXML 私有组中心组; (在for循环中,我将数组列表中的网格视图添加到组中) 对于(-;-;-){ centergroup.getchildren().add(网格视图[i]); } Perspectivecamera相机=新Perspectivecamera(假); pointlight redlight=新pointlight(); 红光.setcolor(color.red); pointlight greenlight=新pointlight(); 绿灯。设置颜色(颜色。绿色); (我已经试过下面三个了。中间一个给出了重复的子错误。) //borderpane.setcenter(中心组); //centerpane.getchildren().addall(centergroup、redlight、greenlight); centerpane.getchildren().addall(红灯、绿灯); < /代码> 我相信这足够让我描绘出我想要修复的东西的代码了。我将附加一张图形用户界面的图片,以显示当代码运行并且我被打印到控制台时,从文件中读取的网格视图的数量和数量是正确的,屏幕上没有显示任何内容。感谢您的帮助。 . 从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); 我相信这足够让我描绘出我想要修复的东西的代码了。我将附加一张图形用户界面的图片,以显示当代码运行并且我被打印到控制台时,从文件中读取的网格视图的数量和数量是正确的,屏幕上没有显示任何内容。谢谢你的帮助。
来自控制器文件的行:
我相信这足够让我描绘出我想要修复的东西的代码了。我将附加一张图形用户界面的图片,以显示当代码运行并且我被打印到控制台时,从文件中读取的网格视图的数量和数量是正确的,屏幕上没有显示任何内容。感谢您的帮助。
.
<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);