使用FXML在VBox中包装标签文本
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用FXML在VBox中包装标签文本相关的知识,希望对你有一定的参考价值。
我正在编写一个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" ...
如果这不起作用,请在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>
另一答案
您是否在那里使用了类名为“label1”和“label2”的样式表,设置wrapText="true"
将无法在fxml代码中使用
- 您尝试删除id并在
wrapText="true"
仍然设置时查看它是否包装
要么
- 把一些css代码放到那个将在特定类中包装像
-fx-word-wrap: break-word;
这样的文本的css文件中;
以上是关于使用FXML在VBox中包装标签文本的主要内容,如果未能解决你的问题,请参考以下文章
是否可以在 python 的 matplotlib 中包装 xticks 的文本?