JavaFX 中的标签和文本差异

Posted

技术标签:

【中文标题】JavaFX 中的标签和文本差异【英文标题】:Label and Text differences in JavaFX 【发布时间】:2014-08-14 00:30:30 【问题描述】:

javafx.scene.text.Text 和 javafx.scene.control.Label 有什么区别?

文档说:

标签是不可编辑的文本控件。 Text 类定义了一个显示文本的节点。

但是 Label 类有一个方法“setText”和“textProperty”,因此是可编辑的。

【问题讨论】:

在此上下文中不可编辑意味着您无法在屏幕上对其进行编辑,但这并不意味着您无法以编程方式对其进行编辑。 一个区别是在组中的位置。当您添加文本时,它被放置在组上方,标签被放置在里面...... 【参考方案1】:

标签

标签显示用户无法直接更改或编辑的文本或图像。 *为标签指定图片。

文本字段

TextField 显示用户可以直接更改或编辑的文本或图像.. 不要为文本字段指定图像

【讨论】:

我认为这个问题只涉及组件 Text 而不是 TextField【参考方案2】:

正如 Harry Blargle 所指出的,“不可编辑”是指“用户不可编辑”。所以 Label 和 Text 都是不可编辑的。

标签和文本具有不同的 CSS 属性。 Label inherits from Labeled, Control, and Region,这意味着它继承了 Text 所没有的许多可样式化属性。 Label 可以有对齐方式、图形、背景、边框、显示的键盘助记符、内置换行,并且可以使用ellipsis(“...”)进行智能裁剪。

文字可以参与TextFlow。 (从技术上讲,Label 也可以,但它被视为另一个嵌入式控件,而不是作为文本布局。)

通常,如果您想通过在输入控件旁边放置一个或多个单词来显示输入控件的用途,和/或希望允许直接通过键盘导航到输入控件,则可以使用标签。如果要显示与输入无关的文本内容,请使用 Text。

【讨论】:

【参考方案3】:

Text 是几何形状(如矩形或圆形),而 Label 是一个 UI 控件(如 Button 或 CheckBox)。

在 Swing 中,几何形状仅限于绘画机制, 而在 JavaFX 中,它们可以以更通用的方式使用。

【讨论】:

您可以使用Text 剪辑,通过文本给出节点形状。

以上是关于JavaFX 中的标签和文本差异的主要内容,如果未能解决你的问题,请参考以下文章

JavaFX,标签setText中的倒数计时器

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

如何防止文本在 JavaFX 中的小按钮上变成省略号?

JAVAFX确定单击了哪个标签

如何在 javafx 中将任何文本或字母转换为图像

JavaFX CSS 字体系列未应用于 Xubuntu 16.04 中的标签控件