このページの内容は JDK1.1βの段階のものです。 内容的に古くなっています。 こちら「Java言語I」第8週 をご覧ください。

国際化機能

このページはまだ作成を始めたばかりです。 また、当然ながら JDK1.1に対応していないブラウザでは確認できません。 JDK1.1 に付属の appletviewer で見てください。
日本語表示の時計
(まだ未完成。タイムゾーンの設定がうまくいきません。バグ?)
(http://www.wakhok.ac.jp/~tatsuo/sen96b/inter/JClock.html)
source  解説


日本語表示のボタン
(EUC、SJISなどに依存しないソースを書くことが可能です。)
(http://www.wakhok.ac.jp/~tatsuo/sen96b/inter/JButtonSample.html)
source  解説


日本語表示のボタン(2)
(ソースコードの中に日本語の文字列を記述できるように、 専用のクラスを設計してみました。 しかし、よく考えてみると異なるコードのマシン間でのバイトコードの 互換性がありません。)
(http://www.wakhok.ac.jp/~tatsuo/sen96b/inter/JSamples.html)
source1  source2  解説


日本語表示のボタン(2-A)
(ソースコードの中に日本語の文字列を記述できるように、 専用のクラスを設計してみました。EUCコード固定のバージョン。 バイトコードの互換性は保たれますが、逆に開発中のソースファイルの 互換性がありません。)
(http://www.wakhok.ac.jp/~tatsuo/sen96b/inter/EUCSamples.html)
source1  source2

*きちんとした処理を行うには、直接 Unicode でソースを書くか、 ResourceBundle クラスを用いて資源を場合分けする必要があるでしょう。
直接 Unicode で記述すれば余分な処理はいりません。 JDK1.1 で配布されている native2ascii というフィルターを使えば 変換も可能です。 しかし、普段のソースファイルの管理に何らかのツールの手助けが必要に なるでしょう。また、Java言語の教育の場では、自由にソースに日本語が 記述できることが望ましいでしょう。 1つの方法として、コンパイル時に native2ascii と javac を同時に呼び出す 簡単なシェルスクリプト(MS-DOS ならバッチファイル)を利用することを 考えてみました。 こうすれば、とりあえず日本語コードのことは意識しなくても作業が 可能です。Java言語の教育の初期には有効だと思います。


#!/bin/sh
# 日本語のコードをユニコードに変換するフィルタを通し
# javac でからコンパイルするスクリプト japac
case $# in
 1) if [ -f $1 ] ; then
       cp -p $1 backup.back; 
       echo "ソースファイル $1 を変換します"
       native2ascii backup.back $1;
       echo "コンパイルを開始します"
       javac $1
       mv backup.back $1
    else
       echo "ファイルが見つかりません"
    fi;;
 *) echo "使用法  japac  file.java"
esac

注意点として、javac はクラス名とソース・ファイル名が同じかどうかまで チェックするので、ファイル名の「入れ替え」が必要になります。 また、本来ならばタイムスタンプの情報もきちんと保持すべきですが、 上のスクリプトは(native2asciiコマンドが)そこまでは対応できません。


Locale の実験(java.text.DateFormatDataクラスを利用)

日本語の文字列のソートの実験(java.text.Collationクラスを利用)
とりあえずひらがなの大小関係が判定できることは確認しました。
(注意:上のソースの中の日本語の部分は Unicode で記述しなくてはいけません。 ここでは、いったんフィルターをかけてコンパイルすることにしています。)

日本語のファイルを読み込み、標準出力に表示(java.io.FileInputReaderクラスを利用)
(注意:上のことは JDK1.02 では単純にバイトを読み込みバイトを書き出していた ので問題なくできたことなのですが、JDK1.1 では、char を単位に処理する必要が あり、InputStream クラスを InputStreamWriter およびそのサブクラスに 置き換えなくてはいけません。)

日本語を含むテキストのファイルへの出力(java.io.FileOutputWriterクラスを利用)
(このサンプルも、便宜上ソース内の記述を通常の日本語コードにしています。 実際には Unicode に変換してからのコンパイルが必要です。)

日本語を含むテキストのファイルからファイルへのコピー