質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaFX

JavaFXとは、Java仮想マシン上で動作するリッチインターネットアプリケーション (RIA) のGUIライブラリです。Swingとは異なり、FXMLと呼ばれる XMLとCSSを併用してデザインを記述します。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

1回答

740閲覧

【JavaFX】コントローラinitialize処理での画面close方法について

退会済みユーザー

退会済みユーザー

総合スコア0

JavaFX

JavaFXとは、Java仮想マシン上で動作するリッチインターネットアプリケーション (RIA) のGUIライブラリです。Swingとは異なり、FXMLと呼ばれる XMLとCSSを併用してデザインを記述します。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2018/11/20 08:58

前提・実現したいこと

JavaFXを利用してアプリケーションを作成しております。
メインウィンドウからサブウィンドウを開いた際に、
サブウィンドウのInitialize処理の中で、下記の処理を行いたいのですが、エラーが発生してうまくいきません。

①TextInputDialogからデータを入力する。
②入力したデータをチェックし、問題がある場合はInitialize処理を続行
入力したデータに問題がある場合は、サブウィンドウを閉じる

Initialize処理での画面クローズは不可能なのでしょうか?
何か方法等ございましたら、ご教示お願い申し上げます。

該当のソースコード

SubController

1public class SubController implements Initializable{ 2 @Override 3 public void initialize(URL location,ResourceBundle resources) { 4 //テキストインプットダイアログでデータを入力 5 TextInputDialog dialog = new TextInputDialog(); 6 String test = dialog.showAndWait().orElse(""); 7 8 //入力されたデータをチェックし、NGの場合はサブウィンドウを閉じたい 9 if(チェックがNGの場合) { 10 Main.subStage.close(); 11 } 12 } 13}

試したこと

Main.javaのソースへサブウィンドウのステージを変数に保存し、
SubStageをCloseしてみましたが、initializeメソッドの中であるためか、エラーが発生してしまいます。

エラーの内容は下記の通りです。
javafx.fxml.LoadException: ~~/sub.fxml
Caused by : java.lang.NullPointerException

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

メイン側でサブウィンドウを表示する前にTextInputDialogを開いてチェックをしてNGならサブウィンドウを開かなければよいのではないかと思いますが、それではだめなのでしょうか?

投稿2018/11/21 06:42

XCUBE

総合スコア101

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/11/21 06:58

仰有る通りでございますね。 メイン側で入力するよう変更いたします。 Initialize処理のなかで何らかのexceptionが発生し、画面をクローズしたい場合は何か方法はございませんでしょうか。
XCUBE

2018/11/21 07:05

Caused by : java.lang.NullPointerException となっていますが、そもそもMain.subStageがNullになっていることはないでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問