2016-09-21 5 views
0

Предполагая, что мой HBox имеет следующие дети:JavaFX HBox размер политики

<HBox fx:id="hBox" xmlns="http://javafx.com/javafx/8.0.102-ea" xmlns:fx="http://javafx.com/fxml/1" fx:controller="gui.controllers.ChatMessageController"> 
    <children> 
     <TextFlow> 
     </TextFlow> 
     <Label text="|" /> 
     <TextFlow> 
     </TextFlow> 
    </children> 
</HBox> 

Это HBox может быть изменен до любых значений. Как я могу убедиться, что первый TextFlow всегда будет соответствовать размеру его содержимого без упаковки?

Другими словами - я хочу, чтобы первый TextFlow имел наивысший приоритет в доступном пространстве HBox.

ответ

1

Вы можете сделать

<HBox fx:id="hBox" xmlns="http://javafx.com/javafx/8.0.102-ea" xmlns:fx="http://javafx.com/fxml/1" fx:controller="gui.controllers.ChatMessageController"> 
    <children> 
     <TextFlow> 
     <HBox.hgrow><Priority fx:value="ALWAYS"/></HBox.hgrow> 
     </TextFlow> 
     <Label text="|" /> 
     <TextFlow> 
     <HBox.hgrow><Priority fx:value="ALWAYS"/></HBox.hgrow> 
     </TextFlow> 
    </children> 
</HBox> 

Очевидно, что вам нужно будет добавить ввозных

<?import javafx.scene.layout.Priority ?> 
+0

Она также должна быть возможность указать это, как простой атрибут без импорта ''. Тип принуждения должен заботиться о правильном выборе правильной константы перечисления. – fabian

+0

@fabian Спасибо: я не был уверен, что это сработает или нет, и не успел проверить ... –