如何在javaFX中使用来自另一个控制器的标签/文本字段

如何在javaFX中使用来自另一个控制器的标签/文本字段,java,javafx-2,Java,Javafx 2,我正在尝试使用来自另一个控制器的标签文本。。这是我的密码 设计视图 在Home.fxml上,我插入一个标签和一个按钮。 如果单击该按钮,则标签文本将更改为fx:id=“lblName”,这是Main.fxml中的一个节点。当然Main.fxml和Home.fxml有不同的控制器 您可以通过以下方式获取Home.fxml的控制器: FXMLLoader fxmlLoader = new FXMLLoader(); try { fxmlLoader.load(getClass().getRe

我正在尝试使用来自另一个控制器的标签文本。。这是我的密码

设计视图

Home.fxml
上,我插入一个标签和一个按钮。
如果单击该按钮,则标签文本将更改为
fx:id=“lblName”
,这是Main.fxml中的一个节点。当然Main.fxml和Home.fxml有不同的控制器

您可以通过以下方式获取
Home.fxml的控制器:

FXMLLoader fxmlLoader = new FXMLLoader();
try {
    fxmlLoader.load(getClass().getResource("Home.fxml").openStream());
    MyControllerClass controller = fxmlLoader.getController();
    // Or use this to find your label
    Label myLabel = (Label) fxmlLoader.getNamespace().get("lblName");
} catch (IOException e) {
    e.printStackTrace();
}
更新:

因此,这里有更多的代码来更好地解释它:假设您有fxml文件,一些
MainViewController
controller和一些
ListItemController
,并且ListItemController有fxml和您想要更改的标签。以下是您可以做的:


fxmloader.getNamespace().get(“lblName”)
将尝试查找xml中指定了id
lblName
的视图

无法理解!“Label myLabel=(Label)fxmlLoader.getNamespace().get(“lblName”);”您可以详细说明一下吗?我在帖子中添加了更多信息,请查看Github上的演示代码谢谢,先生,我刚刚修复了它。但它需要一个媒体类来传递数据。我只是根据你的建议加上这一行<代码>名称媒体名称媒体=新名称媒体();nameMedia.setName(lblName.getText());ListItemController=fxmlLoader.getController()//ListItem.fxml controller.setMedia(nameMedia)中定义的控制器
public class MainController implements Initializable {
@Override
    public void initialize(URL url, ResourceBundle rb) {

    try {
        acContent.getChildren().clear();
        acContent.getChildren().add(FXMLLoader.load(getClass().getResource("Home.fxml")));


    } catch (IOException ex) {
        Logger.getLogger(MainController.class.getName()).log(Level.SEVERE, null, ex);
    }
}     
FXMLLoader fxmlLoader = new FXMLLoader();
try {
    fxmlLoader.load(getClass().getResource("Home.fxml").openStream());
    MyControllerClass controller = fxmlLoader.getController();
    // Or use this to find your label
    Label myLabel = (Label) fxmlLoader.getNamespace().get("lblName");
} catch (IOException e) {
    e.printStackTrace();
}