JavaFX 如何在窗格中居中 JSON 地图
JavaFX How to center JSON map in a Pane
我正在尝试显示用户选择的几张单独的地图,这些地图是根据窗格上的 JSON 坐标绘制的。现在,地图正在左上角绘制。我需要将该地图绘制到窗格的中心,而不是角落,以便可以缩放 properly/universally。如果我使用 StackPane
和 setAlignment(Pos.CENTER);
,那么构成地图的所有单独区域(它们是单独绘制的)都在窗格中绘制,而不是整个地图。
下面是在窗格上绘制区域的代码:
public void addPolygon(List<Point2D>coordinates, Color color){
Polygon polygon = new Polygon();
for(Point2D point : coordinates)
polygon.getPoints().addAll(point.getX(), point.getY());
//outline each polygon in black
polygon.setStroke(Color.BLACK);
polygon.setStrokeWidth(0.08);
//sets the color of the polygon derived from a random color generator
polygon.setFill(color);
//add created polygons to pane
mapPane.getChildren().add(polygon);
如何调整它以显示在中心?谢谢!
我认为解决方案是将各个区域放入一个组中。然后将Group放到居中的StackPane中。
private Group mapGroup = new Group();
public void addPolygon(List<Point2D>coordinates, Color color){
Polygon polygon = new Polygon();
for(Point2D point : coordinates)
polygon.getPoints().addAll(point.getX(), point.getY());
//outline each polygon in black
polygon.setStroke(Color.BLACK);
polygon.setStrokeWidth(0.08);
//sets the color of the polygon derived from a random color generator
polygon.setFill(color);
//add created polygons to pane
mapGroup.getChildren().add(polygon);
我正在尝试显示用户选择的几张单独的地图,这些地图是根据窗格上的 JSON 坐标绘制的。现在,地图正在左上角绘制。我需要将该地图绘制到窗格的中心,而不是角落,以便可以缩放 properly/universally。如果我使用 StackPane
和 setAlignment(Pos.CENTER);
,那么构成地图的所有单独区域(它们是单独绘制的)都在窗格中绘制,而不是整个地图。
下面是在窗格上绘制区域的代码:
public void addPolygon(List<Point2D>coordinates, Color color){
Polygon polygon = new Polygon();
for(Point2D point : coordinates)
polygon.getPoints().addAll(point.getX(), point.getY());
//outline each polygon in black
polygon.setStroke(Color.BLACK);
polygon.setStrokeWidth(0.08);
//sets the color of the polygon derived from a random color generator
polygon.setFill(color);
//add created polygons to pane
mapPane.getChildren().add(polygon);
如何调整它以显示在中心?谢谢!
我认为解决方案是将各个区域放入一个组中。然后将Group放到居中的StackPane中。
private Group mapGroup = new Group();
public void addPolygon(List<Point2D>coordinates, Color color){
Polygon polygon = new Polygon();
for(Point2D point : coordinates)
polygon.getPoints().addAll(point.getX(), point.getY());
//outline each polygon in black
polygon.setStroke(Color.BLACK);
polygon.setStrokeWidth(0.08);
//sets the color of the polygon derived from a random color generator
polygon.setFill(color);
//add created polygons to pane
mapGroup.getChildren().add(polygon);