JavaFx
アプリケーションを作成しています。ボタンをクリックすると、新しいstage
という表が開きます。しかし、私の問題は、そのテーブルのstage
を閉じると、メモリがアプリケーションによって空きになっていないことです。 javaFXに何か問題はありますか?私は何か別のことをしなければならないのですか?JavaFX Stageを終了した後でメモリを解放する方法は?
私はその段階の終了時にすべてをnullに設定しようとしましたが、まだメモリが空いているわけではありません。テーブルのステージにイベントを閉じる
:
テーブルビューのtableView。
ステージmyStage;
私は舞台のためにfxml
ファイルを使用してシーンをロードするためにreplaceSceneというメソッドを作成しています。コントローラーを戻し、シーンをステージに設定します。
public static Initializable replaceScene(String fXml, Stage mystage) {
InputStream in = null;
try {
FXMLLoader loader = new FXMLLoader();
in = Utility.class.getResourceAsStream(fXml);
loader.setLocation(Utility.class.getResource(fXml));
loader.setBuilderFactory(new JavaFXBuilderFactory());
AnchorPane page;
try {
page = (AnchorPane) loader.load(in);
} finally {
in.close();
}
Scene scene = new Scene(page);
mystage.setScene(scene);
return loader.getController();
} catch (Exception ex) {
return null;
}
}
私は最初のFXMLファイルのStreamObject(java.io.InputStreamを)を取得し、ページをロードするためにFxmlLoaderにこのstreamObjectを渡しています
、
= Utility.class.getResourceAsStream(FXML)で;
私はメモリ管理およびJavaFXのための特別なものは何もありませんでのInputStreamオブジェクトに
私はあなたに役立つでしょう質問may.mayを更新しました。 – Ronak
@Ronakあなたのアップデートはあなたの質問にどのように関連していますか? – Kai
私は、入力ストリームを使ってシーンを読み込んでいるときに、メモリを解放しないと言っています。 – Ronak