Label and Text differences in JavaFX

JavaJavafxFxml

Java Problem Overview


What is the difference between javafx.scene.text.Text and javafx.scene.control.Label?

The documentation says:

  • Label is a non-editable text control.
  • The Text class defines a node that displays a text.

But the Label class has a method "setText" and "textProperty", therefore is editable.

Java Solutions


Solution 1 - Java

As Harry Blargle pointed out, "non-editable" means "not editable by the user." So both Label and Text are non-editable.

Label and Text have different CSS properties. Label inherits from Labeled, Control, and Region, which means it inherits a great many styleable properties which Text doesn't have. A Label can have alignment, a graphic, a background, a border, a displayed keyboard mnemonic, built-in wrapping, and can be intelligently clipped with an ellipsis ("…").

Text can participate in a TextFlow. (Technically, Label can also, but it is treated as just another embedded control and is not laid out as text.)

In general, if you want to show the purpose of an input control by placing one or more words next to it, and/or you want to allow direct keyboard navigation to an input control, you use a Label. If you want to display text content not associated with input, you use Text.

Solution 2 - Java

A Text is a geometric shape (like a Rectangle or a Circle), while Label is a UI control (like a Button or a CheckBox).

In Swing, geometric shapes were restricted to the painting mechanism, while in JavaFX they can be used in more generic ways.

Solution 3 - Java

Labels

  • A label displays text or image which the user cannot directly change or edit . *specify the image for the label.

TextFields

  • A TextField displays text or image which the user can directly change or edit ..
  • don't specify image for the text field

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionmultiplayer1080View Question on Stackoverflow
Solution 1 - JavaVGRView Answer on Stackoverflow
Solution 2 - JavaJan BodnarView Answer on Stackoverflow
Solution 3 - JavaVaibhav AgarwalView Answer on Stackoverflow