2017-07-15 139 views
0

我已經創建了一個標籤併爲其分配了一個包含常量變量名稱的字符串。然後我給FXML標籤FX: FXML文件:在控制器中的標籤,這與@FXML註釋的想法 JavaFX標籤不顯示文本

<?import javafx.scene.control.Label?> 
<?import javafx.scene.layout.AnchorPane?> 

<AnchorPane prefHeight="387.0" prefWidth="444.0" 
xmlns="http://javafx.com/javafx/8.0.111" 
xmlns:fx="http://javafx.com/fxml/1" 
fx:controller="application.HomeController"> 
    <children> 
     <Label fx:id="welcomeMsg" layoutX="7.0" layoutY="16.0" 
     prefHeight="38.0" prefWidth="428.0" textAlignment="CENTER" 
     textOverrun="CLIP" /> 
    </children> 
</AnchorPane> 

控制器:

package application; 

import javafx.fxml.FXML; 
import javafx.scene.control.Label; 

public class HomeController { 
public String appName = "Probability Distribution Calculator"; 
@FXML 
private Label welcomeMsg = new Label("Welcome to the "+appName); 
} 

標籤所顯示的樣式我已經給出了它,但是,文本不顯示。如果我將靜態文本屬性分配給它的FXML元素,但是當我嘗試使用控制器分配名稱時,它不會。

+0

可能重複[Java FX 8,麻煩設置文本字段的值](https://stackoverflow.com/questions/26189984/java-fx-8-trouble-setting-the-價值的文本字段) – fabian

回答

0

我覺得你的控制器應該從Initializable

延伸,你不應該做welcomeMsg = new Label("Welcome to the "+appName)因爲welcomeMsg將被分配的觀點完全加載後FXML標記,也沒有把這些變量private

public class HomeController extends Initializable { 
    public String appName = "Probability Distribution Calculator"; 
    @FXML Label welcomeMsg; 
}