ファイルダイアローグの使い方
2014年2月10日:Java
ファイルを保存したり、開いたりする操作をするにはファイルダイアローグをつかいます。
ここでは、ファイルダイアローグの使い方を紹介します。
さっそくですが、以下のようにコードを組んでください。
ボタンを押して、CSVファイルを選択し、ファイルの名前・パス・ファイルサイズを表示します。
import java.io.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.filechooser.*; import javax.swing.filechooser.FileFilter; public class Hello extends JFrame { private JButton bt; private JLabel lb; public static void main(String[] args) { Hello hl=new Hello(); } public Hello() { super("ファイルダイアローグ"); bt=new JButton("ファイルの選択"); lb=new JLabel(); add(bt,BorderLayout.NORTH); add(lb,BorderLayout.SOUTH); bt.addActionListener(new BtnActionListener()); addWindowListener(new WindowListener()); setSize(300,300); setVisible(true); } class BtnActionListener implements ActionListener { public void actionPerformed(ActionEvent e) { //ファイルダイアローグ Container cnt=getContentPane(); JFileChooser fc=new JFileChooser(); //拡張子の設定 FileFilter filter=new FileNameExtensionFilter("CSVファイル","csv"); fc.addChoosableFileFilter(filter); //CSVファイルを追加 fc.setFileFilter(filter); //はじめのフィルタをCSVに設定する fc.setAcceptAllFileFilterUsed(false); //すべてのファイルを選択できないようにする int res=fc.showOpenDialog(cnt); //ファイルダイアローグをコンテナへ表示 //保存なら fc.showSaveDialog if(res==JFileChooser.APPROVE_OPTION){ File fl=fc.getSelectedFile(); lb.setText("<html>ファイル名:"+fl.getName()+",<br />"+"絶対パス:"+fl.getAbsolutePath()+",<br />"+"サイズ:"+fl.length()+"</html>"); } } } class WindowListener extends WindowAdapter { public void windowClosing(WindowEvent e) { System.exit(0); } } }
まず、
Container cnt=getContentPane();
により、ファイルダイアローグを表示するコンテナを用意します。そして、
JFileChooser fc=new JFileChooser();
でJFileChooserクラスを準備します。もし、はじめの選択ファイルを指定したいなら
JFileChooser fc=new JFileChooser(“tmp.csv”);
とします。あとは
FileFilter filter=new FileNameExtensionFilter(“CSVファイル”,”csv”);
fc.addChoosableFileFilter(filter);
fc.setFileFilter(filter);
で拡張子をし、
fc.setAcceptAllFileFilterUsed(false);
で「すべてのファイル」をなくしています。
int res=fc.showOpenDialog(cnt);
でオープンファイルダイアローグを表示します。
int res=fc.showSaveDialog(cnt);
なら、セーブファイルダイアローグになります。もしも、開くが押されたら
res=JFileChooser.APPROVE_OPTION
となります。
著者:安井 真人(やすい まさと)
@yasui_masatoさんをフォロー