2017-05-02 1 views
4

Je travaille sur quelque chose qui stocke une grille de mosaïques et j'utilise un FlowPane pour que les mosaïques puissent s'enrouler de manière flexible si la fenêtre est redimensionnée. Le problème que j'ai, c'est qu'il y a généralement beaucoup d'espace supplémentaire sur le côté droit de l'écran, et je voudrais le répartir uniformément des deux côtés. Régler l'alignement sur le type de travail au centre, mais il centre le contenu dans chaque rangée, et je veux que chaque rangée commence à flush sur le côté gauche?JavaFX: Alignement de tout le contenu d'un FlowPane

visualisation de ce que je parle:

alignement FlowPane

FlowPane alignment

Toute idée de ce que je dois faire?

+1

Mettre le FlowPane dans une StackPane plus grande. – Sedrick

Répondre

0

Vous pouvez ajuster les bordures pour obtenir une sortie plus proche.

import java.util.ArrayList; 
import java.util.List; 
import javafx.application.Application; 
import javafx.event.ActionEvent; 
import javafx.event.EventHandler; 
import javafx.geometry.Insets; 
import javafx.scene.Scene; 
import javafx.scene.control.Button; 
import javafx.scene.layout.FlowPane; 
import javafx.scene.layout.Pane; 
import javafx.scene.layout.StackPane; 
import javafx.scene.paint.Color; 
import javafx.scene.shape.Circle; 
import javafx.stage.Stage; 

/** 
* 
* @author blj0011 
*/ 
public class JavaFXApplication95 extends Application 
{ 

    @Override 
    public void start(Stage primaryStage) 
    { 
     FlowPane flowPane = new FlowPane(); 

     List<Circle> circleContainer = new ArrayList(); 
     for(int i = 0; i < 5; i++) 
     { 
      Circle c1 = new Circle(); 
      c1.setRadius(50); 
      c1.setFill(Color.BLUE); 
      circleContainer.add(c1); 
     } 

     flowPane.getChildren().addAll(circleContainer); 
//  flowPane.maxHeight(500); 
//  flowPane.setMaxWidth(300); 
     flowPane.setPadding(new Insets(30, 30, 30, 30)); 
     StackPane root = new StackPane(); 
     root.getChildren().add(flowPane); 

     Scene scene = new Scene(root, 600, 400); 


     primaryStage.setTitle("Hello World!"); 
     primaryStage.setScene(scene); 
     primaryStage.show(); 
    } 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) 
    { 
     launch(args); 
    } 

} 

enter image description here enter image description here

+0

Cela a toujours le même problème. Si vous redimensionnez la fenêtre, il y aura un espace supplémentaire le long de la marge de droite. – Alex

+0

Code juste mis à jour. Je ne suis pas sûr de ce que vous demandez maintenant? – Sedrick

+0

Dans un organigramme, il doit y avoir de l'espace supplémentaire vers la droite jusqu'à ce que cet espace puisse être rempli par le premier nœud de la rangée suivante. – Sedrick