| 13. Dialog / FileDialog |
警告や情報の表示、ファイル選択などに使えるダイアログです。ここでは基本的な使い方のみ紹介します。そのほかのコンストラクタやメソッド、フィールドについては API ドキュメントを参照してください。
| (1) モーダルダイアログボックスの作り方 |
Dialog(Frame owner, String title, boolean modal)
1つの引数のフレームは親になるフレームを指定します。2つの引数はダイアログのタイトルです。3番目の引数が true のとき、モーダルダイアログになります。
ダイアログはコンテナの1つなので、あとはボタンを張り付けたり、ラベルを付けたりして警告や情報を表示します。
DialogTest.java
// DialogTest.java
import java.awt.*;
import java.awt.event.*;
public class DialogTest extends Frame implements ActionListener {
DialogTest() {
// オープンボタン
Button open = new Button("Open Dialog");
// フレームサイズ指定
setSize(200,200);
// レイアウト設定
setLayout(new FlowLayout());
// ボタンはりつけ
add(open);
// リスナ登録
open.addActionListener(this);
// フレーム可視化
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
MyDialog dialog = new MyDialog(this,"DialogTest",true);
}
public static void main(String args[]) {
DialogTest obj = new DialogTest();
}
}
class MyDialog extends Dialog implements ActionListener {
MyDialog(Frame f,String title,boolean modal) {
// スーパークラス Dialog のコンストラクタ呼び出し
super(f,title,modal);
setLayout(new FlowLayout());
Button close = new Button("Close");
setSize(200,100);
add(close);
close.addActionListener(this);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
dispose();
}
}
|
C:\java_test>java DialogTest |

| (2) ファイルを扱う File クラス |
File f = new File(String pathname);
引数にパス名を指定します。フォルダ名でも構いませんし、ファイル名でも構いません。これでファイルのオブジェクトができます。このオブジェクトを使って、ファイルに関する情報を調べることができます。
boolean isFile( )
普通のファイルのとき true を返します。
boolean isDirectory( )
ディレクトリのとき true を返します。
String getParent( )
このファイルオブジェクトの親のパス名を返します。
File getParentFile( )
このファイルオブジェクトの親のファイルオブジェクトを返します。
String getName( )
このファイルオブジェクトのパス名を返します。
String[ ] list( )
このファイルオブジェクトがディレクトリの場合、このディレクトリ内のファイル、サブディレクトリ名を返します。
File[ ] listFiles( )
このファイルオブジェクトがディレクトリの場合、このディレクトリ内のファイル、サブディレクトリのファイルオブジェクトを返します。
この他にもディレクトリを作ったり、ファイル名を変更するメソッドなど、ほとんどのファイル操作が可能です。ただし、ローカルなファイルに対して操作が出来るのは原則としてアプリケーションプログラムの場合です(中級編1章参照)。
File オブジェクトを作っても実際にファイルができるわけではありません。新規にファイルを作る方法は15章からのストリームで説明します。
| (3) FileDialog でファイル選択 |
FileDialog(Frame parent, String title, int mode)
はじめの2つの引数は Dialog の時と同じで、親になるフレームとダイアログのタイトルを指定します。3番目の引数はファイルを開くか、ファイルを保存するかを指定するためのパラメータです。ここには FileDialog クラスの static 変数を指定します。
FileDialog.SAVE
ファイルに保存するためのダイアログを使うとき
FileDialog.LOAD
ファイルを開くためのダイアログを使うとき
どのファイル、ディレクトリが選択されたかを調べるには次のメソッドを使います。
String getDirectory( )
このファイルダイアログのディレクトリ名を返します。
String getFile( )
このファイルダイアログの選択されているファイル名を返します。
何も選択しなかった場合には null が返されます。ファイルダイアログや File クラス、15章から紹介するストリームを組み合わせると、テキストエディタのようなプログラムもつくれます。
FileDialogTest.java
// FileDialogTest.java
import java.awt.*;
import java.awt.event.*;
public class FileDialogTest extends Frame implements ActionListener {
FileDialogTest() {
// ファイルオープンボタン
Button open = new Button("FileOpen");
// ファイルセーブボタン
Button save = new Button("FileSave");
// フレームサイズ指定
setSize(200,100);
// レイアウト設定
setLayout(new FlowLayout());
// ボタンはりつけ
add(open);
add(save);
// リスナ登録
open.addActionListener(this);
save.addActionListener(this);
// フレーム可視化
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
FileDialog f;
// 押されたボタンのラベルを調べる
String mode = e.getActionCommand();
if ( mode.equals("FileOpen") ) {
f = new FileDialog(this,"Open",FileDialog.LOAD);
} else {
f = new FileDialog(this,"Save",FileDialog.SAVE);
}
f.setVisible(true);
System.out.println("選択したファイルは "+f.getFile());
}
public static void main(String args[]) {
FileDialogTest obj = new FileDialogTest();
}
}
|
C:\java_test>java FileDialogTest 選択したファイルは null 選択したファイルは readme.html |
