2016-05-30 52 views
2

如何在javafx中居中標籤的文本?在.css樣式表中或直接在fxml中。我試過Label { -fx-text-alignment: center;}在.css中,但它不起作用。即使在場景製作者中,它也不起作用。如何對齊JavaFX/FXML中的中心標籤?

+0

什麼是您的FXML的標籤的父母? – ItachiUchiha

+0

@IchichiUchiha an AnchorPane –

+0

標籤中是否有多行文本,或者文本是否都在同一行上? –

回答

8

你基本上有兩種選擇:

  1. 使用可以中心的標籤,讓標籤成爲其「最佳尺寸」的佈局窗格(即只是大足以容納文本),或
  2. 使標籤填充其容器的整個寬度,並將其對齊屬性設置爲居中。

您在評論中說您使用AnchorPane作爲標籤的父項。對於佈局窗格來說,這通常不是一個特別好的選擇(基本上你必須對每個控件的邊界進行硬編碼),並且你不能將事情集中在其中(不是沒有大量的工作,反正)。因此,與錨窗格作爲家長,你是減少到2的選擇:

label.setMaxWidth(Double.MAX_VALUE); 
AnchorPane.setLeftAnchor(label, 0.0); 
AnchorPane.setRightAnchor(label, 0.0); 
label.setAlignment(Pos.CENTER); 

顯然,所有可以在FXML設得。但是,一般來說,我會建議使用更合適的layout pane並在該佈局窗格上設置適當的屬性以使標籤居中。

+0

謝謝您的支持,我將AnchorPane更改爲VBox,並且我工作了:) –

+0

@James_D如果我們不添加第一行?我忽略了第一行,它工作。 – Halil