- ベストアンサー
漢字変換するには??
JAVAで日本語を入力し、漢字変換できるものを作りたいのですが、どうしたらいいのかわかりません。 IMEか何か使ったらいいのでしょうか?? さっぱりわからないので、教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>「あ」とか「い」などの文字を貼り付けたボタンを作り、そのボタンが押されるとテキストフィールドに文字が入力されるもの 「あ」が押されたらキーAのキーイベントを発生させるだけ。
その他の回答 (1)
- betagamma
- ベストアンサー率34% (195/558)
1:日本語入力環境がインストールされていないどのようなOSでも動くように、JAVAだけでカナ漢字変換を実装したい、という質問でしょうか? 2:それとも、かな漢字変換はOS依存のソフトウェア(ATOK,IME,canna,wnnなどなど)で行って、その結果をJAVAに渡したい、ということでしょうか? 3:または、単純に、JAVAのプログラムを作ってみたけれど、自分の環境でテキストボックスに日本語を入力しても文字化けしてしまうので困っている、という質問でしょうか? この3つによって、大きくアプローチが異なりますのでお教えください。 現実的には、よほど「かな漢字変換もJAVAで実装しないと困る」ような状況でない限り、「かな漢字変換」の機能はOS依存が普通なのではないかと思います。 たとえば、日本語を勉強している英語圏の人が自分のプログラムをダウンロードしたとき、その人の環境(OS)に日本語入力の機能がなくても、日本語が表示できれさえすれば、かな漢字変換で日本語を打てるようにする、などという要望です。 かな漢字変換ソフトは、高度な技術な上、辞書を作成するのに人海戦術に近い膨大な作業量がありますから、個人で1から実用的なものを開発するのは、非現実的です。cannaのようなフリーソフトもありますが、これらは歴史が古く多くの人がメンテナンスしているので成立しています。 OSに、日本語の「かな漢字変換」の機能が入っている場合、話はぐっと簡単になります。この場合、うまくいけば、awtやswingでテキストボックスを作ってやるだけで、日本語がそこに入力できるはずです。OSによって、EUC,SJIS,Unicodeなど、さまざまなコードでJAVAの実行環境に変換後の文字を渡してきますが、コード変換->フォント->表示の機能は、JAVAでは、かなりのマイナー言語で無い限りほぼサポートされているといっていいと思います。フォントさえインストールすれば、表示はできるようになっています。 OS依存の「かな漢字変換」ソフトを通しても、文字がうまく表示できない場合は、 もらった文字列->Unicodeへの変換(JAVA内では、すべての文字列がUnicodeです) コードの表示(Unicodeのどの文字にどのフォントを割り当てるかは、JAVA実行環境のfont.propertiesという一連のファイルに記録されています。その設定がおかしいと、フォントがインストールされていても正しく表示できません) のどちらかです。 2:個々の環境に「かな漢字変換ソフト」が入っていない状況でも、JAVAだけで、かな漢字変換がしたい場合は、canna,wnnなどの、「ネットワーク越しに、ひらがなを受け取りカナ漢字変換を行った結果を返すソフト」を導入して、かな漢字変換サーバーをクライアントとは別に立ち上げ、JAVAアプリケーションの方では、サーバーにひらがなを渡して変換してもらうというのが、現実的なアプローチなのではないか?と思います。JAVAでも日本語・中国語・韓国語のような「カナ漢字変換」が必要となる場合は考えられていて、 ユーザーがテキストボックスに文字を入力->フィルター->実際にテキストボックスのインスタンスに入力が渡される の、フィルターの部分が自由にプログラムできるようになっています。ただ、あまり使わない機能なので、実際にプログラムしようと思うと割と大変だと思いますが。 したがって、原理的には「カナ漢字変換」の機能まで含めてすべてJAVAで実装することは可能で、実際ATOK for JAVAのようなものも作られています。ただ、これは企業だからできることで、実際に自分で1から作成するのは無謀ですし、cannaのような既存のソフトウェアを移植するのもかなり大変です。ただし、すでに移植をどこかの誰かがやっている場合もありますが。
お礼
ご丁寧にありがとうございます。 すみません。言葉が足りなかったですね。 「あ」とか「い」などの文字を貼り付けたボタンを作り、そのボタンが押されるとテキストフィールドに文字が入力されるものを作ろうと考えています。 その際に、入力された文字を変換したいのです。こういった場合はどうなのでしょうか?? 何度も申し訳ないです。宜しくお願いします。
お礼
なるほど!! わかりました^^ がんばってみます。ありがとうございます!!