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

问题描述 投票:3回答:2

我正在编写一个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>

这不起作用,因为文本不会换行,而只是偏离窗口的右侧。我需要什么才能让它发挥作用?

javafx javafx-8 fxml
2个回答
4
投票

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

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

如果这不起作用,请在HBox的父容器上尝试。你在使用场景构建器吗?我建议你使用它

效果很好(自动生成):

<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>

0
投票

您是否在那里使用了类名为“label1”和“label2”的样式表,设置wrapText="true"将无法在fxml代码中使用

  1. 您尝试删除id并在wrapText="true"仍然设置时查看它是否包装

要么

  1. 把一些css代码放到那个将在特定类中包装像 -fx-word-wrap: break-word; 这样的文本的css文件中;
© www.soinside.com 2019 - 2024. All rights reserved.