JavaFXJava将参数字符串从控制器传递到控制器
似乎我有一些基本的问题,但我不知道如何解决它,我尝试了所有的方法和方法。我处于这种愤怒的状态,似乎什么都不起作用,注意力也会消失 我在这个UserController中有我的UserController我有一个完美的组合框,我需要将这个组合框中选定的城市作为字符串参数传递给MuseumController中的一个方法 它适用于标签,但不适用于我在MuseumController中使用的方法 以下是UserController的相关代码:JavaFXJava将参数字符串从控制器传递到控制器,java,javafx,parameter-passing,Java,Javafx,Parameter Passing,似乎我有一些基本的问题,但我不知道如何解决它,我尝试了所有的方法和方法。我处于这种愤怒的状态,似乎什么都不起作用,注意力也会消失 我在这个UserController中有我的UserController我有一个完美的组合框,我需要将这个组合框中选定的城市作为字符串参数传递给MuseumController中的一个方法 它适用于标签,但不适用于我在MuseumController中使用的方法 以下是UserController的相关代码: public void SearchM(ActionEve
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中。现在它可以工作了,我已经在围绕这个解决方案跳舞了,但在愤怒模式下,你会忘记很多简单的事情如果你创造一个答案,我接受。