Javafx 使用FXML在VBox中包装标签文本

Javafx 使用FXML在VBox中包装标签文本,javafx,javafx-8,fxml,Javafx,Javafx 8,Fxml,我正在编写一个JavaFX应用程序,我想创建一个包含2条长文本的屏幕。我不知道文本是什么,它将在运行时由一些代码填充 为此,我想我应该制作一个带有2个标签的VBox。我假设如果不添加尺寸标注,标签将跨越VBox。因为文本很长,我想把它包装起来 以下是我尝试的FXML: <VBox spacing="20" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"> <children>

我正在编写一个JavaFX应用程序,我想创建一个包含2条长文本的屏幕。我不知道文本是什么,它将在运行时由一些代码填充

为此,我想我应该制作一个带有2个标签的VBox。我假设如果不添加尺寸标注,标签将跨越VBox。因为文本很长,我想把它包装起来

以下是我尝试的FXML:

<VBox spacing="20" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
   <children>
      <Label fx:id="label1" text="Dummy Text" wrapText="true" />   
      <Label fx:id="label2" text="Dummy Text" wrapText="true" />  
   </children>
</VBox>


这不起作用,因为文本不换行,只是从窗口的右侧消失。我需要做什么才能让它工作

请尝试设置prefWidth和prefHeight,因为您的标签不知道何时开始换行

<VBox prefHeight="100.0" prefWidth="300.0"  ...

您是否使用了类名为“label1”和“label2”的样式表?如果使用了,则在fxml代码中设置
wrapText=“true”
将不起作用

  • 您尝试删除id,并查看它是否在
    wrapText=“true”
    仍处于设置状态时进行包装
  • 将一些css代码放在css文件中,这样可以像下面这样包装文本
    -fx word wrap:break word在特定类中
    
    我不确定我是否理解这为什么有效,但它确实有效。谢谢。@SanderSmith,这总结了我使用JavaFX的经验。从中最重要的是
    wrapText=“true”
    -属性。
    <BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="333.0" xmlns="http://javafx.com/javafx/8.0.40" xmlns:fx="http://javafx.com/fxml/1">
       <center>
          <VBox prefHeight="200.0" prefWidth="325.0" BorderPane.alignment="CENTER">
             <children>
                <Label text="Wrap text Wrap text Wrap text Wrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap textWrap text" wrapText="true" />
                <Label layoutX="10.0" layoutY="10.0" text="just textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust textjust text" />
             </children>
          </VBox>
       </center>
    </BorderPane>