私はこのプロジェクトではNetBeansのJavaFXライブラリと連携してSceneBuilderを使用しています。私はScenebuilderを使ってコントローラクラス用のfxmlとnetbeansを作成します。目標は、展開されるかなり複雑なアプリケーションを構築することです。実行中のJavaFXアプリケーションでは、独自の別のコントローラクラスを持つ新しいウィンドウを開きます
私はJavaFXアプリケーションを起動して、コントローラークラスを接続することができます。しかし、新しいウィンドウを開こうとすると、コントローラクラスを新しいウィンドウにバインドすることはできません。物事をシンプルに保つために、複雑なバックエンドのために新しいウィンドウ用に別のコントローラクラスを用意したいと思っています。
TL; DR - コントローラークラスを使用してJavaFXアプリケーションで新しいウィンドウを開こうとしています。コントローラクラスはバインドされていません。
モデルクラス以下
コードサンプル - メインアプリケーション
Sample.javaためFXMLファイル - -
public class Model extends Application{
public static void main(String[] args){
Application.launch(Model.class, args);
}
@Override
public void start(Stage stage) throws Exception{
Parent root = FXMLLoader.load(getClass().getResource("Sample.fxml"));
stage.setScene(new Scene(root));
stage.show();
}
}
Sample.fxmlアプリケーションを起動するためのラッパーは、初期化可能に延びていますは、Sample.fxmlのコントローラクラスです。以下は、私が「ServerConfigChooser
try{
Parent root = FXMLLoader.load(getClass().getResource("ServerConfigChooser.fxml"));
FXMLLoader loader = new FXMLLoader(getClass().getResource("ServerConfigChooser.fxml"));
ServerConfigChooser controller = new ServerConfigChooser();
loader.setController(controller);
loader.setRoot(root);
Stage stage = new Stage();
stage.setScene(new Scene(root));
stage.show();
} catch (IOException ex)
ServerConfigChooser.javaというタイトルの新しいウィンドウを開こうとするコードスニペットです - 私は問題を抱えている場所です初期化可能
を実装して、私は単純に同じfxidで変数を宣言することはできません。
ServerConfigChooserクラス内のコンストラクタの理由は、initialize()メソッドを自動的に起動できないためです。私は、.fxmlファイル内の変数として、初期化メソッドを呼び出すことができません。コンストラクタ内で手動で起動します。
すべてのソリューションは大歓迎です!
JavaFXのは今のために行う必要があります.fxmlと競合します。うまくいけばメモリリークは近い将来に修正される – Kyte
賢明な言葉。日曜日の質問を投稿することは、一般的にSOの週の中で最も活動的ではありません。よりよい結果のために月曜日を待ちます – jth41
私はjth41に同意します – nate