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番目のコンストラクタを確認してみます。
public JFileChooser()
ユーザーのデフォルトディレクトリを参照する JFileChooser を構築します。 このデフォルトディレクトリは、オペレーティングシステムによって異なりま す。通常、Windows では「My Documents」フォルダ、UNIX ではユーザーのホー ムディレクトリです。
このコンストラクタではOS毎に異なるデフォルトのパスを表示するファイルチューザーを作成します。
実際の使い方は次のようになります。
JFileChooser filechooser = new JFileChooser();
サンプルプログラム
では簡単なサンプルを作成して試してみます。
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()); } } }
上記をコンパイルした後で実行すると次のように表示されます。
画面に表示されているボタンをクリックするとファイルを選択するためのファイルチューザーが開きます。
ファイルを選択して「開く」ボタンをクリックすると、選択されたファイル名を親フレーム上のラベルに表示します。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。