2016-11-29 1 views
0

J'essaie d'afficher plusieurs cartes individuelles du choix de l'utilisateur tirées des coordonnées JSON sur un volet. En ce moment, la carte est dessinée dans le coin supérieur gauche. J'ai besoin que cette carte soit dessinée au centre du volet, pas dans un coin, donc elle peut être mise à l'échelle correctement/universellement. Si j'utilise un StackPane et setAlignment(Pos.CENTER); alors toutes les régions séparées (elles sont dessinées individuellement) qui composent la carte sont dessinées dans le volet pas la carte dans son ensemble.JavaFX Comment centrer la carte JSON dans un volet

Voici le code pour dessiner les régions sur le volet:

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); 

Comment puis-je modifier qu'il apparaisse dans le centre? Merci!

Répondre

0

Je pense que la solution serait de mettre les différentes régions dans un groupe. Placez ensuite le groupe dans le StackPane centré.

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); 
+0

cela a résolu, merci! – dot