したがって、TableViewをクリックすると開く新しいウィンドウにパラメータ(ID)を渡す必要があります。具体的には、MainContorllerからTvShowsAboutControllerにシリーズIDパラメータを渡す必要があります。JavaFX FXMLの新しい枠線枠にパラメータを渡す
MainControllerからTvShowsAboutControllerを開きます。このように:
public void showSeriesInfo() {
try {
BorderPane tvShows = (BorderPane) FXMLLoader.load(getClass().getResource("/seriesapp/javafx/tvShowAbout.fxml"));
setCenterPane(tvShows);
} catch (Exception e) {
e.printStackTrace();
}
}
しかし、TvShowsAvoutControllerクラスで引数を渡す方法はわかりません。新しいTvShowsAboutControllerクラスを作成すると、FXMLファイルがロードされなかったためクラッシュします。私はStackOverflowで同様の問題を見たPassing Parameters JavaFX FXMLしかしそれはあまり役に立たなかった。私はこれを試みたが、運ました:
メインコントローラクラス
public void showSeriesInfo() {
try {
FXMLLoader loader = new FXMLLoader(getClass().getResource("/javafx/tvShowAbout.fxml"));
TvShowAboutController controller =
loader.<TvShowAboutController>getController();
controller.initData(showsTable.getSelectionModel().getSelectedItem().getShowid());
BorderPane tvShows = (BorderPane) loader.load();
setCenterPane(tvShows);
} catch (Exception e) {
e.printStackTrace();
}
}
TvShowsAboutControllerクラス
@FXML
public void initialize(){
showSeriesInfo();
}
void initData(Integer showId) {
this.seriesId = showId;
}
P.S.このように新しいペインを開くと、私は引数の受け渡し方法がわからないと言っています。
を行うために必要がある場合があります詳細な説明のためにありがとうございました。これで解決しました。 – user3746480