2017-07-15 376 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; 
}