JavaFX 中的标签和文本差异

2022-08-31 15:22:08

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

文档说:

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

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


答案 1

正如Harry Blargle所指出的,“不可编辑”意味着“用户不可编辑”。因此,“标签”和“文本”都是不可编辑的。

“标签”和“文本”具有不同的 CSS 属性。Label 继承自“标签”、“控件”和“区域”,这意味着它继承了许多 Text 不具有的可设置样式的属性。Label 可以具有对齐方式、图形、背景、边框、显示的键盘助记符、内置换行,并且可以使用省略号 (“...”) 智能地进行剪切。

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

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


答案 2

A 是一个几何形状(如矩形或圆形),而 A 是一个 UI 控件(如按钮或复选框)。TextLabel

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


推荐