私は2つのウィンドウコントローラを持っています。どちらもFXMLファイルを読み込んで画面を表示します。最初のGUIControllerはメインウィンドウで、2番目のウィンドウPackageBuilderが生成されます。このウィンドウの内部にはユーザーが何らかのデータを入力して保存します。別のクラス(例:ChoiceBox)で2番目のウィンドウを初期化する
二ウィンドウがそう(FXMLはリンク)のように、メインウィンドウのボタンを経由して起動されます:
@FXML private void onNewPackage(ActionEvent e){
PackageBuilder pb = new PackageBuilder(owner); // Scene owner
}
私はJavaFXのアプリケーションの起動方法と、元のシーンを呼び出すことはできません二級に合格する必要があります考え出し一緒に。だから、私はこれをPackageBuilderの内側に書いています。
public PackageBuilder(Scene owner) {
/* Removed redundant setup info */
fstart(owner);
}
private void fstart(owner) {
Stage window = new Stage();
window.initModality(Modality.APPLICATION_MODAL);
FXMLLoader loader;
Scene scene;
try {
loader = new FXMLLoader(getClass().getResource("PackageBuilder.fxml"));
scene = new Scene(loader.load());
window.initOwner(owner);
window.setScene(scene);
window.showAndWait();
} catch (IOException e) {
e.printStackTrace();
}
}
これは、initializeメソッドを呼び出すことができれば、すべてが良いでしょう。しかし、それはできません。では、ChoiceBoxの要素を他の場所に初期化する方法がありますか?
どこか愚かな間違いがあるとします。いつもあります。
1時間前に質問したので、このビデオを見てください。誰も答えませんでした。今、あなたに手伝ってくれるだけの時間がありません。 https://www.youtube.com/watch?v=NgubWgheboI – zlakad
なぜダイアログではなく新しい段階になるのですか? – user1803551
@ user1803551デザインはここでは問題ではありません。実際にこの**を行うことができない場合は、問題になります。 – Felix