選択されたファイルを取得する
広告
ファイルチューザーを使ったダイアログが表示されファイルが選択されてからダイアログが閉じられます。その後でダイアログで選択されたファイルを取得する方法を確認します。JFileChooserクラスで用意されている「getSelectedFile」メソッドを使います。
public File getSelectedFile()
選択されたファイルを返します。ファイルは、プログラマによって setFile を 通じて、または、UI へのファイル名の入力や、UI リストでのファイル選択な どのユーザーアクションによって設定できます。 戻り値: 選択されたファイル
メソッドを実行すると戻り値としてダイアログで選択されたファイルを表すFileクラスのオブジェクトを取得できます。Fileクラスについては『ファイルを管理する』を参照して下さい。
実際の使い方は次のようになります。
JFileChooser filechooser = new JFileChooser(); int selected = filechooser.showOpenDialog(this); if (selected == JFileChooser.APPROVE_OPTION){ File file = filechooser.getSelectedFile(); }
サンプルプログラム
では簡単なサンプルを作成して試してみます。
import javax.swing.*; import java.io.*; import java.awt.Dimension; import java.awt.BorderLayout; import java.awt.event.*; public class JFileChooserTest5 extends JFrame implements ActionListener{ JTextArea textarea; public static void main(String[] args){ JFileChooserTest5 frame = new JFileChooserTest5(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setBounds(10, 10, 300, 200); frame.setTitle("タイトル"); frame.setVisible(true); } JFileChooserTest5(){ JButton button = new JButton("file select"); button.addActionListener(this); JPanel buttonPanel = new JPanel(); buttonPanel.add(button); textarea = new JTextArea(); textarea.setLineWrap(true); JScrollPane scrollpane = new JScrollPane(textarea); scrollpane.setPreferredSize(new Dimension(120, 120)); JPanel textPanel = new JPanel(); textPanel.add(scrollpane); getContentPane().add(textPanel, 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(); textarea.setText(""); try{ if (checkBeforeReadfile(file)){ BufferedReader br = new BufferedReader(new FileReader(file)); String str; while((str = br.readLine()) != null){ textarea.append(str); textarea.append("\n"); } br.close(); }else{ System.out.println("ファイルが見つからないか開けません"); } }catch(FileNotFoundException err){ System.out.println(err); }catch(IOException err){ System.out.println(err); } } } private static boolean checkBeforeReadfile(File file){ if (file.exists()){ if (file.isFile() && file.canRead()){ return true; } } return false; } }
上記をコンパイルした後で実行すると次のように表示されます。
今回のサンプルでは「ファイルを開く」ダイアログを表示してテキストファイルを選択すると、選択されたファイルを読み込んでテキストエリアに表示するようにしています。それではボタンをクリックしてファイルを選択して下さい。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。