2017-07-15 6 views
0

Ich habe ein Label erstellt und ihm einen String zugewiesen, der einen konstanten Variablennamen enthält. Ich habe dann das FXML Label die fx: Idee des Labels in der Steuerung, die mit @FXML kommentiert wurde: FXML Datei: JavaFX Label zeigt keinen Text an

<?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> 

Controller:

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); 
} 

Das Etikett zeigt die Arten I habe es aber gegeben, der Text wird nicht angezeigt. Wenn ich dem FXML-Element ein statisches Textattribut zuweist, funktioniert es zwar, aber wenn ich versuche, den Namen mit dem Controller zuzuweisen, tut es das nicht.

+0

Mögliche Duplikate von [Java FX 8, Problem beim Setzen des Wertes des Textfelds] (https://stackoverflow.com/questions/26189984/java-fx-8-trouble-setting-the- Wert-von-Text-Feld) – fabian

Antwort

0

ich denke, Ihr Controller sollte von Initializable

erweitert und Sie sollten welcomeMsg = new Label("Welcome to the "+appName) nicht tun, weil welcomeMsg wird in fxml nach dem Laden der Ansicht vollständig und auch die private

public class HomeController extends Initializable { 
    public String appName = "Probability Distribution Calculator"; 
    @FXML Label welcomeMsg; 
} 
Variable machen nicht zugeordnet werden soll beschriften