JavaFX如何在窗格中居中JSON映射

时间:2016-11-29 20:38:51

标签: json javafx pane

我试图在窗格上显示从JSON坐标绘制的用户选择的几个单独地图。现在,地图正在左上角绘制。我需要将地图绘制到窗格的中心,而不是在角落中,因此可以正确/普遍地缩放。如果我使用StackPanesetAlignment(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);

如何调整它以显示在中心?谢谢!

1 个答案:

答案 0 :(得分:0)

我认为解决方案是将各个区域划分为一个组。然后将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);