ダイアログボックスなど
AWT を使ったファイルダイアログボックス
プログラムの内容
ファイルのダイアログボックスからファイル名を選択して そのファイルの中身をコンソール画面に出力する。
結果
C:\workspace\File_IO\output.txt 1:福岡県 2:福岡市 3:東区 4:箱崎
ソースコード
package hoge.hoge.com;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class DialogTest2 extends WindowAdapter implements ActionListener {
Frame frm = new Frame("File Dialog");
public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタブ
DialogTest2 win = new DialogTest2();
}
public DialogTest2() {
frm.setSize(200 , 100);
Button load = (Button)frm.add(new Button("LOAD"));
load.addActionListener(this);
frm.setVisible(true);
frm.addWindowListener(this);
}
public void actionPerformed(ActionEvent e) {
FileDialog fd = new FileDialog(frm , "ファイル読み込み" , FileDialog.LOAD);
fd.setVisible(true);
String str = fd.getDirectory() + fd.getFile();
if(str.equals("nullnull")){
}else{
try{
System.out.println(str);
String data;
BufferedReader fr =
new BufferedReader(new InputStreamReader(new FileInputStream(str), "JISAutoDetect"));
// ファイル出力ストリームを取得
while((data=fr.readLine())!=null){
System.out.println(data);
}
}catch(IOException ex){
System.out.println("入出力エラー!");
ex.printStackTrace();
}
}
}
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
JOptionPage を使ったダイアログボックス
JOptionPaneクラスを用いたサンプル
package hoge.hoge.com;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class DialogTest {
public static void main(String[] args) {
//JFrame frame = new JFrame("JOptionPanel Demo");
//frame.addWindowListener(new WindowAdapter() {
// public void windowClosing(WindowEvent e) { System.exit(0); }
//});
//frame.setSize(new Dimension(300,200));
//frame.setVisible(true);
String ans =
JOptionPane.showInputDialog(
null,
"文字列を入力してください",
"入力画面",
JOptionPane.QUESTION_MESSAGE);
if(ans == null)
JOptionPane.showMessageDialog(
null,
"何も入力されませんでした",
"実行結果",
JOptionPane.ERROR_MESSAGE);
else
JOptionPane.showMessageDialog(
null,
"入力結果:\n " + ans,
"実行結果",
JOptionPane.PLAIN_MESSAGE);
}
}
SWT の使用
【関連する外部ページ】 http://www.thinkit.co.jp/free/tech/11/3/1.html
【関連する外部ページ】 http://www-06.ibm.com/jp/developerworks/opensource/030328/j_os-ecgui1.shtml
【関連する外部ページ】 http://www.eclipse.org/swt/examples.php
- Eclipseのダウンロードページ(
http://www.eclipse.org/downloads/index.php)から,SWTをダウンロード.
- http://www.eclipse.org/downloads/index.php
- Popular projects の「Standard Widget Toolkit (SWT)」をクリック
- 「Stable」の中からプラットフォームに応じたファイルをダウンロード
- 「Language Pack」をクリック.NLPack1をダウンロード
- 解凍
- 出来たディレクトリ(swt-M20070201201330-win32-win32-x86)を,C:\Program Files\java の下に置く.
- Eclipse での作業.新規プロジェクトの作成
「File (ファイル)」→「New (新規)」→「Project (プロジェクト)」
プロジェクトの種類は Java プロジェクト.プロジェクト名は好きに付ける.
- SWT を使えるように設定
コンパイル前に,パッケージ・エキスプローラ内のプロジェクト名を右クリック.
ウインドウが現れるので,「Properties」. 別のウインドウが現れるので,「Java Build Path」
ウインドウが現れるので, C:\Program Files\java\swt-M20070201201330-win32-win32-x86\swt.jar を指定する.
- (オプション) Java ソースの添付
- パッケージ・エクスプローラーの「swt.jar」を右クリック
- 「Properties (プロパティー)]
- ウインドウが開くので,「Java Source Attachment (Java ソースの添付)」→「External File (外部ファイル)」を選ぶ.
- C:\Program Files\java\swt-M20070201201330-win32-win32-x86\swt.jar\src.zipを指定
- 「OK」
これで,Javadoc コメントのポップアップ表示やソースの閲覧ができるようになる
- 新しいパッケージと,クラス HelloWorld の定義
パッケージ・エクスプローラで, 「New (新規)」→「Class (クラス)」
package hoge.hoge.com; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; public class HelloWorld { public static void main(String[] args) { Display display = new Display(); Shell shell = new Shell(display); shell.setText("Hello World"); shell.open(); while (!shell.isDisposed ()){ if (!display.readAndDispatch ()){ display.sleep (); } } display.dispose (); } } - クラス名を右クリック.「Run As」→「SWT Application」
JFace の使用法
- equinoxを入れる
ウィンドウ→設定→Java→ビルド・パス→クラスパス変数→新規名前:equinox パス:ファイルをクリックし、(eclipseインストールフォルダ)\plugins\ org.eclipse.equinox.common_3.2.0.v20060603.jar を選択
- パッケージエクスプローラでプロジェクトを右クリック
ビルド・パス→ビルド・パスの構成→ライブラリー→ライブラリーの追加
Standard Widget Toolkit(SWT) を選択→次へ→JFaceライブラリーのサポートを 組み込む にチェック→終了
- http://www13.plala.or.jp/observe/JFace/jface_dialog.html 上記ページのサンプルをコピー&ペーストで実行できることを確認