一个单独的线程通过下面的线段代码获取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;
问题是正在调用方法并且控制台输出正在控制台上打印,但文本标签没有被更新,也没有抛出任何异常。 任何帮助,任何阅读都会非常棒! 谢谢