基本的な質問があるようですが、解決方法を見つけ出すことはできません。私はこの怒りモードにあり、何も働かないように見えて集中力が衰えています。JavaFX Javaの引数の文字列をコントローラーからコントローラーに渡す
私はこのUserControllerで自分のUserControllerを持っています。私は完璧に動作するComboBoxを持っています。私のMuseumControllerのメソッドにString引数としてこのコンボボックスから選択した都市を渡す必要があります。
Labelでは動作しますが、MuseumControllerで使用する方法では動作しません。ここで
がUserControllerでから、関連するコードです:私の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();
}
}
、私の最初のアイデアは、なぜ、すでにので、ラベル(ラベルを取ることではない、でした必要な都市を表示します)、そこから都市を取得すると、都市名の更新されたものではなく、デフォルトのラベルのみが表示されるため、機能しませんでした。
@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を交換する必要があります:私はObserverListと文字列引数(CITY)を必要とする機能を持っている
MuseumControllerは、関数が、私は、マニュアルの文字列でそれを試してみました、完璧に動作します"コンボボックスからの値またはメソッドGetCityNameの都市引数
私は、文字列をnullにする設定になった文字列だけを渡してみましたが、それは初期化メソッドのためです。
このスレッドは悲しげにdidntの助け: Similar Problem on StackOverFlow
私は、関連するコードを提供するためにしようと試み、FillListViewStadt方法は完璧に動作します。もし私が何かを見逃して、私は更新します。
要約:私はどのように文字列の引数としてuserControllerのコンボボックスから選択した値をmuseencontrollerから関数 FillListViewStadtに初期化し、手書きのenetred "Düsseldorf"をそれに置き換えますか?
'initialize()'メソッドは 'loader.load()'で呼び出されます。そのため、パラメータを渡す機会があります。正しい方法は、(GetCityName()で行ったように)別のメソッドを作成してそこにパラメータを渡すことです。 –
@ Moh-Awありがとう、それです。全体のメソッドを初期化からGetCityNameに移動しました。これはうまくいきましたが、私はすでにこのソリューションの周りで踊っていましたが、怒りのモードでは多くの簡単なことを忘れてしまいます。 ;)あなたが回答を作成した場合、私はそれを受け入れます。 – Roman