Q9-1:p24の接続先のコンポーネントである「ファイル選択」とはどのような役割を担うコンポーネントなのでしょうか?起動メソッドの「単数Open用ファイル選択ダイアログを表示する」の意味がわかりません。各単語の意味と数あるメソッドの中で何故これを選択すべきなのかを教えて下さい。説明の箇所に親コンポーネントとありますが、親コンポーネントの意味は何でしょうか?
A9-1:
1) [ファイル選択]コンポーネントは、ファイルを保存したり開いたりする時に出てくる、ファイル選択の窓の役割をするコンポーネントです。
似たようなメソッド名が4つあります。
・単数Open用ファイル選択ダイアログを表示する
・単数Save用ファイル選択ダイアログを表示する
・複数Open用ファイル選択ダイアログを表示する
・複数Save用ファイル選択ダイアログを表示する
これらは、何かをきっかけとして(例:[ボタン]を押したら)ファイルを選択する窓を表示させるメソッドです。
「Open/Save」の別はファイルを開く時のためのダイアログであるか、ファイル保存時のダイアログであるかです。用途によって右下に現れるボタン名が「開く」または「保存」となります。
[ファイル選択]コンポーネントの「属性情報設定」で「MultiSelectionEnabled」を[true」にした後、「複数Open用……」または「複数Save用……」のメソッドで、ファイル選択の窓を表示させた時は、[Shift]キーや[Ctrl]キーを押しながらの複数のファイル名選択が可能となります。
「単数Open用……」「単数Save用……」の場合は「MultiSelectionEnabled=true」でも一度に複数のファイル名を選択することはできません。
以上「Open/Save」(=開くか保存か)と「単数選択か複数選択か」の組み合わせで似たようなメソッド名が4つ存在しますが、ファイルを選択する窓を表示する際には、この4つの中からメソッドを選ぶことになります。
2) P29でのイベント番号設定で「0」「1」「2」のうち、「1」を選ぶ理由ですが、イベント番号の条件は
・「0」:キャンセルボタンを押した時
・「1」:showOpenSingleFile(),showSaveSingleFile()でファイル選択にOKを押したとき
・「2」:showOpenFile(), showSaveFile()でファイル選択後にOKボタンを押したとき
となっています。
「showOpenSingleFile()」とメソッド名に「Single」が入っている方が「単数Open用……」のメソッドを指します。
ファイル選択の窓を表示させると右下に「開く」または「保存」のボタンが表示されますが、これを押した時が『OKを押した時』となります。
「キャンセル」(=取り消し)ボタンを押した時と区別を付けたいのでイベント番号が分かれていますが、さらに「単数ファイル選択用のダイアログ表示時」と「複数ファイル選択用のダイアログ表示時」も区別をするため、「0」「1」「2」とイベント番号が3つあります。
このLesson12のアプリケーションでは、ファイル選択ダイアログでファイル名を選択し「開く」ボタンを押すと画像を読込み表示するという流れになっています。
もしイベント番号を設定しなかった場合は、「キャンセル」(=取り消し)ボタンを押した時に、どのファイル名も選択されていないのに、「ファイル名を指定して画像を読込む」処理は行われるので、ファイル名が不明となりエラーが発生します。
そのエラーを回避するため、キャンセル時には「ファイル名を指定して画像を読込む」処理を行わないようイベント番号を設定しています。
「1」番を設定すると、単数のファイル選択のダイアログで「開く」ボタン押下時のみ処理が行われます。
3)「ファイル選択ダイアログを表示する」際の引数での「親コンポーネント」は、ファイル選択の窓をどの辺りに表示させるかの位置基準になる[コンポーネント]を指します。このメソッドでは親コンポーネントとなるコンポーネントは[フレーム]か[ダイアログ]で、親コンポーネント表示の中心位置がダイアログ表示の中心位置となります。