我有一个场景 - 我想拉出那个场景上的所有元素。
基本上,这就是我尝试创建的内容:顶部有一个按钮的窗口,点击后会产生"产生"屏幕上的新块,可以通过其他方式进行拖动/交互。我已经在代码中添加了块了。但是我想让它变得动态,为此,我需要能够循环遍历场景中的所有对象,并且我需要知道如何动态地将对象添加到场景中。
所以,为了更清楚 - 我有两个问题。
如何在按下按钮的情况下动态添加矩形,圆形或其他内容? 如何提取场景中所有内容的列表。如果我添加矩形,我希望能够执行类似scene.getElements()的操作,并让它返回该场景上的元素列表,以便我可以遍历它们并检查它们的内容。
我的代码:
final Circle circle = new Circle(200, 150, 50, Color.BLUEVIOLET);
final Rectangle rectangle = new Rectangle();
rectangle.setX(50);
rectangle.setY(50);
rectangle.setWidth(200);
rectangle.setHeight(100);
rectangle.setFill(Color.CORNFLOWERBLUE);
final Circle pizzaCrust = new Circle(SCENE_WIDTH/2, SCENE_HEIGHT/2, SCENE_WIDTH/2-150, Color.TAN);
final Circle pizzaInside = new Circle(SCENE_WIDTH/2, SCENE_HEIGHT/2, SCENE_WIDTH/2-160, Color.LIGHTYELLOW);
final Group group = new Group(pizzaCrust, pizzaInside, rectangle, circle);
final Scene scene = new Scene(group, SCENE_WIDTH, SCENE_HEIGHT, Color.WHITE);
答案 0 :(得分:2)
考虑Pane#getChildren方法。您可以在列表中循环,如果找到Pane,则可以再次递归调用该方法。
要小心,因为JavaFX元素不是Pane的子类。
另请注意,getChildren返回一个ObservableList,因此如果向其添加元素,它将显示在舞台上。