Политика изменения размера JavaFX HBox

Предполагая, что у моего 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.


person Dejwi    schedule 21.09.2016    source источник


Ответы (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 ?>
person James_D    schedule 21.09.2016
comment
Также должна быть возможность указать это как простой атрибут без импорта <TextFlow HBox.hgrow="ALWAYS"/>. Приведение типа должно позаботиться об автоматическом выборе правильной константы перечисления. - person fabian; 21.09.2016
comment
@fabian Спасибо: я не был уверен, сработает это или нет, и не было времени проверить... - person James_D; 21.09.2016