我有一个类似
的ArrayListArrayList<Rectangle> rectanlges= new ArrayList<Rectangle>();
这个arrayList中有几个矩形...带
anchorpane.getChildren().addAll(rectangles);
我确实展示了形状......但我想在每个矩形上放置一个文本......我用
尝试了for (int i = 0; i < rectangles.size(); i++) {
Text text = new Text("test");
text.setFill(Color.GREEN);
StackPane stack = new StackPane();
stack.getChildren().addAll(rectangles.get(i), text);
}
但我很难向他们展示
anchorpane.getChildren().addAll(rectangles);
我该如何解决?
答案 0 :(得分:0)
只需将每个StackPane
添加到anchorpane
而不是每个Rectangle
,并将Rectangle
s的偏移量添加为AnchorPane
布局参数{{1 }}
示例:
StackPane
或者,您可以使用AnchorPane anchorPane = new AnchorPane();
List<Rectangle> rectangles = Arrays.asList(new Rectangle(100, 100, 50, 50), new Rectangle(200, 100, 70, 300));
anchorPane.getChildren().addAll(rectangles.stream().map(rect -> {
Text text = new Text("test");
text.setFill(Color.GREEN);
StackPane stackPane = new StackPane(rect, text);
AnchorPane.setLeftAnchor(stackPane, rect.getX());
AnchorPane.setTopAnchor(stackPane, rect.getY());
return stackPane;
}).toArray(StackPane[]::new));
s with background:
Label