ryo-dev2017/06/24 12:52そのリファレンスも一回目を通したんですが、 mainStage が定義されていてmainStage.display(selectedFile); となっているので、どういう指定かがわかりません
LouiS06162017/06/24 13:02変数名が何であろうと本質は一緒です。 リファレンスに"ownerWindow - 表示されているファイル・ダイアログの所有者ウィンドウ"と書いてあります。 もしあなたがWindowを継承したクラスのインスタンスからFileDialogを呼び出すなら、 File file = fileChooser.showOpenDialog(this); で充分でしょう。 そうでないなら、親となるウィンドウのインスタンスを渡してやってください。 mainStage.display(selectedFile)に関しては、得られたファイルを処理している部分なので、ファイルダイアログの表示には影響しません。 例として使われているmainStageのクラスによります。
KSwordOfHaste2017/06/24 13:05 編集To:質問者さん 少しだけ補足します。JavaFXでウィンドウといったらまずはStageだと思ってください(Stageのリファレンスを見ればそれがWindowクラスの派生であることに気づくと思います)。アプリケーションクラスのstartメソッドの引数に渡されるのがメインウィンドウに当たるStageになっています。リファレンスに書かれているmainStage.display(selectedFile)は本件の場合無視してかまいません。それは本件とは関係ない単なる例なので気にしなくてよいのです。 --- 失礼、LouiS0616さんのコメントとかぶってしまいました。
ryo-dev2017/06/24 13:13showOpenDialog は今回の場合nullでいいとはわかりました。 リファレンスをもう一度読んできたのですが、パラメータ: ownerWindow - 表示されているファイル・ダイアログの所有者ウィンドウ とあるんですが、表示されているファイル・ダイアログの所有者ウィンドウという意味がわかりません。 どんな時に、どんなものを渡すんですか?
LouiS06162017/06/24 13:23例えばWordか何かで「開く」ボタンを押すと、まさしくファイルダイアログが表示されますね? このダイアログは、元のWordのウィンドウと全く無関係ではありません。 この場合、元のWindowが、ファイルダイアログの所有者である、という言い方をします。
LouiS06162017/06/24 13:55ある程度関係性がはっきりしているときは、とりあえずでも渡しておいた方がよいです。 『基本的にどんなときでも、所有者のインスタンス(時にthis)を渡す』が答えになりますかね... リファレンスを見ると、『ファイル・ダイアログの所有者ウィンドウが設定されている場合は、そのダイアログの所有者チェーン内のすべてのウィンドウに対する入力は、ファイル・ダイアログが表示されている間はブロックされます。』と書いてあります。 ファイルダイアログを表示しているのに、元のウィンドウを好き放題操作されたら困りますでしょう? 想定しないエラーが発生する危険性も非常に高いです。
ryo-dev2017/06/24 14:07this を渡すと"型 FileChooser のメソッド showOpenDialog(Window) は引数 (TestFlvPlay) に適用できません"というエラーが出るんですが、型が違うって言われているんですか?
LouiS06162017/06/24 14:08そうですね。 別にメインとなるWindowを作っているなら、そのインスタンスを渡してください。 ファイルダイアログ以外一切表示しないのなら、引数はnullでも大丈夫です。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/06/24 12:52
2017/06/24 13:02
2017/06/24 13:05 編集
2017/06/24 13:13
2017/06/24 13:23
2017/06/24 13:46 編集
2017/06/24 13:55
2017/06/24 13:59
2017/06/24 14:07
2017/06/24 14:08
2017/06/24 14:12