Javaプログラミング/Javaプログラミング関連情報

ダイアログを使おう!(2ページ目)

今回は、Swingに標準で用意されている各種のダイアログの利用について説明しましょう。

執筆者:掌田 津耶乃

JFileChooserの使い方


ボタンを押すと、オープンダイアログが現れ、ファイルを選ぶとその詳細が表示される。


ここでは、ウインドウの下部にあるボタンをクリックすると、オープンダイアログを開き、これで選択したファイル名と絶対パスを表示します。clickBtnメソッドを見ると、new JFileChooserでインスタンスを作成し、「showOpenDialog」というメソッドを呼び出しているのがわかりますね。これが、オープンダイアログを画面に表示するためのものです。同様に、保存ダイアログを呼び出す「showSaveDialog」というメソッドもあります。いずれも、ただメソッドを呼び出すだけで、ダイアログが現れます。

これらのメソッドでは、いずれも引数に「this」を渡します。これは、表示するダイアログが所属するフレームを指定するものです。この種のモーダル(処理が途中で中断されるタイプの)ダイアログというのは、あるウインドウ上に表示され、それが閉じるまで、そのウインドウは操作できなくなります。このため、「どのウインドウに属するか」は重要になるわけです。まぁ、通常は表示されているJFrameインスタンス(this)を指定すればよいでしょう。

これらのメソッドは、ダイアログが閉じられると、何らかの値(int値)が返されるようになっています。これによって、どういう形でダイアログが閉じられたかがわかります。ファイルが選択(あるいは入力)されてOKされた場合には、返値はJFileChooser.APPROVE_OPTIONとなりますので、メソッドの返値がこの値であった場合には、必要な処理を行うようにしておけばよいでしょう。

選択したファイルは、JFileChooserの「getSelectedFile」で得ることができます。これは、選択ファイルをjava.io.Fileのインスタンスとして返すものです。Fileインスタンスが得られれば、後はどうとでもなりますね。ここでは、getNameとgetAbsolutePathで、ファイル名と絶対パスを取り出してJLabelに表示させています。

この他、選択されたディレクトリは、「getCurrentDirectory」で得ることができます。これは、ダイアログが閉じられた際に選択されていたディレクトリをFileインスタンスとして返すものです。

複数ファイルへの対応は?


JFileChooserは、複数のファイルを選択することも可能です。この場合には、複数ファイルの選択を可能にする「setMultiSelectionEnabled」をtrueに設定してダイアログを呼び出します。また、選択したファイルは、「getSelectedFiles」メソッドで、Fileインスタンスの配列として取り出すことができます。

public void clickBtn(){
JFileChooser chooser = new JFileChooser();
chooser.setMultiSelectionEnabled(true);
int result = chooser.showOpenDialog(this);
if (result == JFileChooser.APPROVE_OPTION){
File[] arr = chooser.getSelectedFiles();
String s = "";
for(File f: arr)
s += f.getName() + "";
label.setText(s + "");
}
}

clickBtnメソッドをこのように修正してみましょう。今度は、複数のファイルを選択することができます。ダイアログを閉じると、選択したファイル全てのファイル名が表示されます。
  • 前のページへ
  • 1
  • 2
  • 3
  • 4
  • 次のページへ

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます