ファイルチューザーが参照するパスを指定する

広告

ファイルチューザーが表示される時、OS毎に決められたディレクトリが初期状態で表示されます。ここでは初期状態で表示されるパスを指定する方法を確認します。表示したいパスを文字列として指定するコンストラクタとFileクラスのオブジェクトとして指定するコンストラクタの2つが用意されています。

まずはパスを文字列で指定するコンストラクタを確認します。

public JFileChooser(String currentDirectoryPath)

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

パラメータ:
  currentDirectoryPath - ファイルまたはディレクトリのパスを指定する 
    String

引数にファイルチューザーが初期状態で表示したいパスを表す値をString型の値として指定します。

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

JFileChooser filechooser = new JFileChooser("c:\\temp");

上記の場合はCドライブの「tmp」と言うディレクトリを初期状態で表示します。

次にパスをFileクラスのオブジェクトで指定するコンストラクタを確認します。

public JFileChooser(File currentDirectory)

指定された File をパスとして使って JFileChooser を構築します。null が渡
された場合は、ユーザーのデフォルトディレクトリを参照します。このデフォル
トディレクトリは、オペレーティングシステムによって異なります。通常、
Windows では「My Documents」フォルダ、UNIX ではユーザーのホームディレク
トリです。

パラメータ:
  currentDirectory - ファイルまたはディレクトリのパスを指定する File オ
    ブジェクト

引数にファイルチューザーが初期状態で表示したいパスを表す値をFileクラスのオブジェクトで指定します。

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

File dir = new File("c:\\temp");
JFileChooser filechooser = new JFileChooser(dir);

上記の場合もCドライブの「tmp」と言うディレクトリを初期状態で表示します。

どちらのコンストラクタを使った場合もパスにはディレクトリの位置を指定します。ファイル名まで含めて指定した場合には、そのファイルが含まれるディレクトリにパスが設定されます。

サンプルプログラム

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

JFileChooserTest7.java

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

public class JFileChooserTest7 extends JFrame implements ActionListener{

  JLabel label;

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

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

  JFileChooserTest7(){
    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){
    File dir = new File("c:\\temp");
    JFileChooser filechooser = new JFileChooser(dir);

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

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

JFileChooserで参照するパスを設定する

ボタンをクリックすると指定したディレクトリを初期位置としてダイアログが表示されます。

JFileChooserで参照するパスを設定する

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。