访问FX Controller然后调用更新标签文本的方法(同步FXML和控制器)[问题]

时间:2017-11-07 11:33:59

标签: java javafx

一个单独的线程通过下面的线段代码获取Controller

    FXMLLoader loader = new FXMLLoader();
    loader.setLocation(getClass().getResource("FXMLDocument.fxml"));
    try 
    {
        loader.load();
    } catch (Exception ex) 
    {
        System.out.println("Error loading");
    }
    FXMLDocumentController controller = loader.getController();

Controller包含一个方法dynamicUpdate(String data),现在我从我得到控制器的线程中调用此方法,如下所示。

controller.dynamicUpdate("hello from the thread"+count);

现在这里是控制器中的方法:FXMLDocumentController

public  void dynamicUpdate(String data)
{
    helloLabel.setText(data);
}

其中helloLabel是标签的id,在控制器中它是一个实例变量 在xml中,它在内部窗格中:

  <Label fx:id="helloLabel" layoutX="182.0" layoutY="179.0" prefHeight="43.0" prefWidth="259.0" text="sdadsadasdsadasd" />

在Controller it's:

 @FXML
public Label helloLabel;

问题是正在调用方法并且控制台输出正在控制台上打印,但文本标签没有被更新,也没有抛出任何异常。 任何帮助,任何阅读都会非常棒! 谢谢

0 个答案:

没有答案