ファイルダイアログ
アプリケーションでは、さまざまなダイアログを利用します。Swingでは、ウインドウを作れますから、「必要に応じてダイアログを作ってください」ということでもいいのですが、非常に汎用性の高いものはやっぱり標準で用意しておいて欲しいものですね。
そこで、ファイルダイアログ、色の選択ダイアログ、そして簡単なメッセージの表示や入力を行うダイアログなどがSwingには標準で用意されることとなりました。こうしたダイアログ類の使い方をざっと説明していくことにしましょう。
まずは、ダイアログの中でも、もっとも重要度の高い「ファイルダイアログ」からです。これは、ファイルを開いたり保存したりするときに現れるダイアログのことですね。ファイルを利用する際には、必須のものといってよいでしょう。
このファイルダイアログは、「JFileChooser」というクラスとして用意されています。このクラスの利用は、以下のような手順で行います。
1.new JFileChooserでインスタンスを作成します。
2.メソッドを呼び出し、オープン/セーブダイアログを呼び出します。呼び出すメソッドにより、どちらのダイアログを出すか決められます。ダイアログが閉じられるまで、処理は停止します。
3.ダイアログを閉じたら、インスタンスからメソッドを呼び出し、選択したファイルやパスなど、必要な情報を取り出します。
ダイアログを表示するメソッド、そして選択したファイルに関する情報を取り出すメソッド、これらの使い方さえわかっていれば、それほど難しそうではありませんね。では、実際に簡単な利用例をあげておきましょう。
package jp.allabout;
import java.awt.*;
import java.awt.event.*;
import java.io.File;
import java.util.*;
import javax.swing.*;
public class SampleApp extends JFrame {
JLabel label;
public SampleApp(){
this.setSize(new Dimension(300,200));
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
label = new JLabel();
this.add(label,BorderLayout.CENTER);
JButton button = new JButton("click");
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
clickBtn();
}
});
this.add(button,BorderLayout.SOUTH);
}
public void clickBtn(){
JFileChooser chooser = new JFileChooser();
int result = chooser.showOpenDialog(this);
if (result == JFileChooser.APPROVE_OPTION){
File f = chooser.getSelectedFile();
label.setText("" + f.getName() + "" +
f.getAbsolutePath() + "");
}
}
public static void main(String[] args) {
new SampleApp().setVisible(true);
}
}