ダイアログボックスなど
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 上記ページのサンプルをコピー&ペーストで実行できることを確認