2017-08-09 3 views
0

Es scheint, als ob ich keine Eigenschaften auf dem <left> StackPane setzen kann. Ich möchte zum Beispiel die Breite auf 200 einstellen.Kann ich die Breite eines BorderPane Elements in FXML einstellen?

<BorderPane fx:id="borderPane" fx:controller="main.Controller" 
      xmlns:fx="http://javafx.com/fxml" prefHeight="600.0" prefWidth="800.0"> 

    <left prefWidth="200"> // This doesn't work 
     <ListView fx:id="listView"/> 
    </left> 
    <right> 
     <ImageView fx:id="staticImage"/> 
    </right> 

</BorderPane> 

Ich weiß, dass ich dies programmatisch tun können:

StackPane left = new StackPane(); 
left.setPrefWidth(200); 
borderPane.setLeft(left); 

Aber für die Zwecke meines Projektes einfach das kann ich auf diese Weise nicht tun. Gibt es Alternativen?

+0

Ich denke nicht, dass Sie 'prefWidth' auf dem' ' Tag anwenden können. Sie sollten wahrscheinlich ein 'StackPane' innerhalb Ihres '' Tags erstellen und prefWidth auf dieses StackPane anwenden. –

Antwort

1

können Sie übersetzen nur den Java-Code direkt auf FXML posted:

<BorderPane fx:id="borderPane" fx:controller="main.Controller" 
      xmlns:fx="http://javafx.com/fxml" prefHeight="600.0" prefWidth="800.0"> 

    <left> 
     <StackPane prefWidth="200" /> 
    </left> 
    <right> 
     <ImageView fx:id="staticImage"/> 
    </right> 

</BorderPane> 
+0

Ja, das funktioniert viel besser! Das linke Fenster hat jetzt die feste Breite, die ich wollte. – santafebound

Verwandte Themen