JavaFX中的标签和文本差异

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

该文件说:

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

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

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

标签和文本具有不同的CSS属性。 标签从标签,控制和区域inheritance,这意味着它inheritance了很多文本没有的样式属性。 标签可以具有alignment,graphics,背景,边框,显示的键盘助记符,内置包装,并且可以用省略号 (“…”)来智能地裁剪。

文本可以参与TextFlow 。 (从技术上来说,Label也可以,但是它被看作是另一个embedded式控件,并不是作为文本来布局的。)

一般来说,如果要通过在其旁边放置一个或多个单词来显示input控件的用途,并且/或者希望允许直接键盘导航到input控件,则可以使用Label。 如果要显示与input无关的文本内容,请使用文本。

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

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