Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaFXJava将参数字符串从控制器传递到控制器_Java_Javafx_Parameter Passing - Fatal编程技术网

JavaFXJava将参数字符串从控制器传递到控制器

JavaFXJava将参数字符串从控制器传递到控制器,java,javafx,parameter-passing,Java,Javafx,Parameter Passing,似乎我有一些基本的问题,但我不知道如何解决它,我尝试了所有的方法和方法。我处于这种愤怒的状态,似乎什么都不起作用,注意力也会消失 我在这个UserController中有我的UserController我有一个完美的组合框,我需要将这个组合框中选定的城市作为字符串参数传递给MuseumController中的一个方法 它适用于标签,但不适用于我在MuseumController中使用的方法 以下是UserController的相关代码: public void SearchM(ActionEve

似乎我有一些基本的问题,但我不知道如何解决它,我尝试了所有的方法和方法。我处于这种愤怒的状态,似乎什么都不起作用,注意力也会消失

我在这个UserController中有我的UserController我有一个完美的组合框,我需要将这个组合框中选定的城市作为字符串参数传递给MuseumController中的一个方法

它适用于标签,但不适用于我在MuseumController中使用的方法

以下是UserController的相关代码:

public void SearchM(ActionEvent event) {

    try {
            ((Node) event.getSource()).getScene().getWindow().hide();

            Stage primaryStage = new Stage();

            FXMLLoader loader = new FXMLLoader();

            Pane root = loader.load(getClass().getResource("/application/M_in_City.fxml").openStream());

            MuseenController museenController = (MuseenController) loader.getController();
            museenController.GetCityName(txtComboboxStadt.getValue());
            //museenController.GetOnlyCityName(txtComboboxStadt.getValue());
            Scene scene = new Scene(root);
            scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
            primaryStage.setScene(scene);
            primaryStage.show();

    } catch (IOException e) {

        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}
在这个UserController中,我成功地将值从我的MuseumController传递到标签中,我的第一个想法是,为什么不使用标签(因为标签已经显示了所需的城市)并从那里获取城市,它没有起作用,因为它只显示默认标签,而不是带有城市名称的更新标签

MuseumController我有一个函数,它需要一个ObserverList和一个字符串参数(城市),该函数工作得非常好,我用手动字符串进行了尝试:

@FXML
private Label MuseenInStadtLbl;

@FXML
private ListView<String> ListViewMuseen;

@Override
public void initialize(URL location, ResourceBundle resources) {    
    museenInStadtModel.FillListViewStadt(ListViewMuseen, "Düsseldorf");
}

//public String only_cityname;
/*
public String GetOnlyCityName(String city) {
    return city;
}
*/

public void GetCityName(String city) {
    //only_cityname = city;
    MuseenInStadtLbl.setText("Museen in der Stadt: " + city);
}
@FXML
自有品牌博物馆;
@FXML
私有ListView ListViewMuseen;
@凌驾
公共void初始化(URL位置,ResourceBundle资源){
FillListViewStatt(ListViewMuseen,“Düsseldorf”);
}
//仅限公共字符串\u cityname;
/*
公共字符串GetOnlyCityName(字符串城市){
回归城市;
}
*/
public void GetCityName(字符串城市){
//仅城市名称=城市;
塞特克特博物馆(Museen in der Stadt:+城市);
}
因此,我需要用ComboBox中的值或GetCityName方法中的city参数替换“Düssedorf”

我尝试只传递字符串,这总是导致将字符串设置为null,这是因为initialize方法,但是如何做呢

不幸的是,这条线没有起到任何作用:

我试图只提供相关的代码,FillListViewStatt方法非常有效。如果我错过了什么,告诉我,我会更新

摘要:如何将usercontroller中组合框中的选定值作为字符串参数传递到函数中的initialize from museencontroller
填充ListViewStadt并用它替换手动编辑的“Düsseldorf”。

loader.load()
上调用
initialize()
方法,以便在您有机会传递任何参数之前。正确的方法是创建一个不同的方法(就像您使用
GetCityName()
)并将参数传递到那里。

loader.load()
上调用
initialize()
方法,这样在您有机会传递任何参数之前。正确的方法是创建一个不同的方法(就像您使用
GetCityName()
)并在那里传递参数。

loader.load()
上调用
initialize()
方法,这样在您有机会传递任何参数之前。正确的方法是创建一个不同的方法(就像您使用
GetCityName()
)并将参数传递到那里。@Moh-Aw谢谢,就这样。我将整个方法从initialize移到了GetCityName中。现在它可以工作了,我已经在围绕这个解决方案跳舞了,但在愤怒模式下,你会忘记很多简单的事情如果您创建了一个答案,我会接受它。在您有机会传递任何参数之前,
loader.load()
会调用
initialize()
方法。正确的方法是创建一个不同的方法(就像您使用
GetCityName()
)并将参数传递到那里。@Moh-Aw谢谢,就这样。我将整个方法从initialize移到了GetCityName中。现在它可以工作了,我已经在围绕这个解决方案跳舞了,但在愤怒模式下,你会忘记很多简单的事情如果你创造一个答案,我接受。