JFileChooserクラスの定義とコンストラクタ

広告

JFileChooserクラスの定義を確認します。クラス図は次のようになっています。

  • java.lang.Object
  • java.awt.Component
  • java.awt.Container
  • javax.swing.JComponent
  • javax.swing.JFileChooser
  • public class JFileChooser extends JComponent implements Accessible

JFileChooserクラスはJComponentクラスのサブクラスとなっています。JComponentクラスはSwingで用いられる多くのコンポーネントのベースとなっているクラスです。

JFileChooserクラスのコンストラクタ

JFileChooserクラスをを利用するにはコンストラクタを使ってJFileChooserクラスのオブジェクトを作成します。どのようなコンストラクタが用意されているか確認してみます。

コンストラクタ
JFileChooser()
ユーザーのデフォルトディレクトリを参照する JFileChooser を構築します。
JFileChooser(File currentDirectory)
指定された File をパスとして使って JFileChooser を構築します。
JFileChooser(File currentDirectory, FileSystemView fsv)
指定された現在のディレクトリと FileSystemView を使って JFileChooser を構築します。
JFileChooser(FileSystemView fsv)
指定された FileSystemView を使って JFileChooser を構築します。
JFileChooser(String currentDirectoryPath)
指定されたパスを使って JFileChooser を構築します。
JFileChooser(String currentDirectoryPath, FileSystemView fsv)
指定された現在のディレクトリパスと FileSystemView を使って JFileChooser を構築します。

6つのコンストラクタが用意されています。コンストラクタではファイルチューザーに表示されるパスを指定するかどうか、そしてどのように指定するかでコンストラクタを使い分けます。なおFileSystemViewクラスを引数に使用するコンストラクタも用意されていますが今回はFileSystemViewクラスについては取り扱いません。

それでは1番目のコンストラクタを確認してみます。

ユーザーのデフォルトディレクトリを参照する JFileChooser を構築します。
このデフォルトディレクトリは、オペレーティングシステムによって異なりま
す。通常、Windows では「My Documents」フォルダ、UNIX ではユーザーのホー
ムディレクトリです。

このコンストラクタではOS毎に異なるデフォルトのパスを表示するファイルチューザーを作成します。

実際の使い方は次のようになります。

JFileChooser filechooser = new JFileChooser();

サンプルプログラム

では簡単なサンプルを作成して試してみます。

JFileChooserTest1.java

import javax.swing.*;
import java.io.File;
import java.awt.BorderLayout;
import java.awt.event.*;

public class JFileChooserTest1 extends JFrame implements ActionListener{

  JLabel label;

  public static void main(String[] args){
    JFileChooserTest1 frame = new JFileChooserTest1();

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setBounds(10, 10, 300, 200);
    frame.setTitle("タイトル");
    frame.setVisible(true);
  }

  JFileChooserTest1(){
    JButton button = new JButton("file select");
    button.addActionListener(this);

    JPanel buttonPanel = new JPanel();
    buttonPanel.add(button);

    label = new JLabel();

    JPanel labelPanel = new JPanel();
    labelPanel.add(label);

    getContentPane().add(labelPanel, BorderLayout.CENTER);
    getContentPane().add(buttonPanel, BorderLayout.PAGE_END);
  }

  public void actionPerformed(ActionEvent e){
    JFileChooser filechooser = new JFileChooser();

    int selected = filechooser.showOpenDialog(this);
    if (selected == JFileChooser.APPROVE_OPTION){
      File file = filechooser.getSelectedFile();
      label.setText(file.getName());
    }
  }
}

上記をコンパイルした後で実行すると次のように表示されます。

JFileChooserのサンプル

画面に表示されているボタンをクリックするとファイルを選択するためのファイルチューザーが開きます。

JFileChooserのサンプル

ファイルを選択して「開く」ボタンをクリックすると、選択されたファイル名を親フレーム上のラベルに表示します。

JFileChooserのサンプル

JFileChooserのサンプル

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)