2016-11-26 1 views
0

Aus irgendeinem Grund führt textExampleTwo.setLayoutX(40) nicht wirklich dazu, dass sich die überhaupt nach rechts bewegt. Ist das ein Fehler oder habe ich hier etwas Wichtiges verpasst?.setLayoutX() beeinflusst nicht die Position in FlowPane

public void start(Stage stage) throws Exception { 

    FlowPane flowPane = new FlowPane(); 
    flowPane.setOrientation(Orientation.VERTICAL); 

    Text textExampleOne = new Text("An example - 1"); 

    Text textExampleTwo = new Text("An example - 2"); 
    textExampleTwo.setLayoutX(40.0); 

    flowPane.getChildren().addAll(textExampleOne, textExampleTwo); 

    Scene applicationScene = new Scene(flowPane); 
    stage.setHeight(400.0); 
    stage.setWidth(400.0); 
    stage.setScene(applicationScene); 
    stage.show(); 
} 

An image of the application (Note that they are on the same X level)

Antwort

1

Sie haben etwas Wichtiges hier verpasst:

Viele Pane s einschließlich FlowPane die Position ihrer Kinder allein bestimmen. Zur Positionierung werden die Eigenschaften layoutX und layoutY verwendet. Wenn Sie einer davon einen neuen Wert zuweisen und Node ein untergeordnetes Element eines Layouts ist, das seine untergeordneten Elemente selbst positioniert, führt dies nur dazu, dass die Position während des nächsten Layoutdurchlaufs geändert wird.

Die Ausnahme davon sind Node s mit der managed Eigenschaft, die auf false festgelegt ist. Dies führt dazu, dass wederlayoutXnochlayoutY zugewiesen wird.

In Ihrem Fall scheinen Sie eine Kombination der beiden zu wollen.

In diesem Fall kann der gewünschte Effekt durch Einstellen eines Randes erreicht werden.

// set all insets except the left one to 0 
FlowPane.setMargin(textExampleOne, new Insets(0, 0, 0, 40)); 

ist jedoch zu beachten, dass diese Einstellung nicht die x-Position zu 40, aber es hält einen Raum der Größe 40 an der linken Seite der Node. Wenn Sie vor diesem Knoten genügend untergeordnete Elemente hinzufügen, um sie in die zweite Spalte zu verschieben, wird dieser Abstand verwendet, um den Abstand zum Anfang der Spalte zu berechnen.

+0

ah, danke für die Hilfe! Es gibt noch eine weitere Sache, die ich gerne stellen würde, können Sie das auch für eine Scheibe tun? –

+0

Hängt von der Art der Scheibe ab ... – fabian

Verwandte Themen