我似乎有一些基本问题,但我不知道如何解决它,我尝试了所有方法和 atm。我正处于这种愤怒模式,似乎什么都不起作用,注意力也逐渐消失。
我的 UserController 位于此 UserController 中,我有一个运行完美的 ComboBox,我需要将此 ComboBox 中选定的城市作为字符串参数传递给我的 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 和字符串参数(THE CITY)的函数,该函数运行完美,我用手动字符串尝试了它:
@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);
}
因此,我需要将“Düssedorf”替换为 ComboBox 中的值或 GetCityName 方法中的城市参数
我尝试只传递字符串,但总是导致将字符串设置为空,这是因为初始化方法的原因,但是该怎么做呢?
遗憾的是,该线程没有帮助: Similar Problem on StackOverFlow
我尝试仅提供相关代码,FillListViewStadt 方法工作完美。如果我错过了什么,请告诉我,我会更新。
总结:如何将用户 Controller 中组合框中的选定值作为字符串参数传递到从 mueencontroller 到函数的初始化中 填充ListViewStadt并用它替换手动输入的“Düsseldorf”。
最佳答案
initialize()
方法是在 loader.load()
上调用的,因此在您有机会传递任何参数之前。正确的方法是创建一个不同的方法(就像使用 GetCityName()
所做的那样)并在其中传递参数。
关于JavaFX Java 在 Controller 之间传递参数字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36177655/