金子邦彦研究室プログラミングJava のプログラム例ダイアログボックスなど

ダイアログボックスなど

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クラスを用いたサンプル

参考Webページ http://www.geocities.jp/h2fujimura/appendix/Component/JOptionPane/index.html http://www.geocities.jp/h2fujimura/appendix/Component/JOptionPane/index.html

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

  1. Eclipseのダウンロードページ( http://www.eclipse.org/downloads/index.php)から,SWTをダウンロード.
  2. 解凍
  3. 出来たディレクトリ(swt-M20070201201330-win32-win32-x86)を,C:\Program Files\java の下に置く.
  4. Eclipse での作業.新規プロジェクトの作成

    「File (ファイル)」→「New (新規)」→「Project (プロジェクト)」

    プロジェクトの種類は Java プロジェクト.プロジェクト名は好きに付ける.

  5. SWT を使えるように設定

    コンパイル前に,パッケージ・エキスプローラ内のプロジェクト名を右クリック.

    ウインドウが現れるので,「Properties」. 別のウインドウが現れるので,「Java Build Path」

    ウインドウが現れるので, C:\Program Files\java\swt-M20070201201330-win32-win32-x86\swt.jar を指定する.

  6. (オプション) Java ソースの添付

    これで,Javadoc コメントのポップアップ表示やソースの閲覧ができるようになる

  7. 新しいパッケージと,クラス 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 ();
              }
    }
    
  8. クラス名を右クリック.「Run As」→「SWT Application」

JFace の使用法

  1. equinoxを入れる
    ウィンドウ→設定→Java→ビルド・パス→クラスパス変数→新規
    名前:equinox
    パス:ファイルをクリックし、(eclipseインストールフォルダ)\plugins\
    org.eclipse.equinox.common_3.2.0.v20060603.jar を選択
    
  2. パッケージエクスプローラでプロジェクトを右クリック

    ビルド・パス→ビルド・パスの構成→ライブラリー→ライブラリーの追加

    Standard Widget Toolkit(SWT) を選択→次へ→JFaceライブラリーのサポートを
    組み込む にチェック→終了
    
  3. http://www13.plala.or.jp/observe/JFace/jface_dialog.html 上記ページのサンプルをコピー&ペーストで実行できることを確認