2014-06-23 73 views
42

javafx.scene.text.Text和javafx.scene.control.Label有什麼區別?JavaFX中的標籤和文本差異

文檔說:

  • 標籤是一個不可編輯的文本控制。
  • Text類定義了一個顯示文本的節點。

但是Label類有一個方法「setText」和「textProperty」,因此是可編輯的。

+6

在此上下文中不可編輯意味着您無法在屏幕上進行編輯,但這並不意味着您無法以編程方式對其進行編輯。 –

+0

一個區別是在一個組中的位置。當你添加一個文本時,它被放置在組的上方,並且標籤被放置在... – multiplayer1080

回答

61

正如Harry Blargle指出的那樣,「不可編輯」意味着「用戶無法編輯」。所以標籤和文本都是不可編輯的。

標籤和文本具有不同的CSS屬性。 Label inherits from Labeled, Control, and Region,這意味着它繼承了文本沒有的很多可修改的屬性。標籤可以具有對齊,圖形,背景,邊框,顯示的鍵盤助記符,內置包裝,並且可以用ellipsis(「...」)智能地裁剪。

文本可以參與TextFlow。 (從技術上講,標籤也可以,但它被看作是另一種嵌入式控件,並未作爲文本進行佈局。)

通常,如果要通過將一個或多個單詞放在下一個來顯示輸入控件的目的並且/或者您希望允許直接鍵盤導航到輸入控件,您可以使用標籤。如果要顯示與輸入無關的文本內容,請使用文本。

+2

+1以便進行徹底解釋。 –

11

A Text是一個幾何形狀(如矩形或圓形),而 Label是一個UI控件(如Button或CheckBox)。

在Swing中,幾何形狀僅限於繪畫機制 ,而在JavaFX中它們可以以更通用的方式使用。

+0

您可以使用「文本」裁剪,通過文本給出節點的形狀。 – Mordechai