JavaFX标签未显示文本

时间:2017-07-15 19:27:43

标签: javafx-2

我创建了一个Label并为其分配了一个字符串,其中包含一个常量变量名。然后我给了FXML标签fx:控制器中标签的概念,用@FXML注释: FXML文件:     

<?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元素分配静态文本属性它可以工作,但是当我尝试使用控制器分配名称时,它不会。

2 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:0)

阿里是对的。您应该使用Label类的setText方法来设置欢迎消息。看看这里:http://docs.oracle.com/javafx/2/ui_controls/label.htm