専門家に聞いた!繰り返す痔の原因は!? >>

JAVAで日本語を入力し、漢字変換できるものを作りたいのですが、どうしたらいいのかわかりません。
IMEか何か使ったらいいのでしょうか??
さっぱりわからないので、教えてください。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

>「あ」とか「い」などの文字を貼り付けたボタンを作り、そのボタンが押されるとテキストフィールドに文字が入力されるもの



「あ」が押されたらキーAのキーイベントを発生させるだけ。
    • good
    • 0
この回答へのお礼

なるほど!!
わかりました^^
がんばってみます。ありがとうございます!!

お礼日時:2004/11/06 21:35

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のような既存のソフトウェアを移植するのもかなり大変です。ただし、すでに移植をどこかの誰かがやっている場合もありますが。
    • good
    • 0
この回答へのお礼

ご丁寧にありがとうございます。

すみません。言葉が足りなかったですね。
「あ」とか「い」などの文字を貼り付けたボタンを作り、そのボタンが押されるとテキストフィールドに文字が入力されるものを作ろうと考えています。
その際に、入力された文字を変換したいのです。こういった場合はどうなのでしょうか??
何度も申し訳ないです。宜しくお願いします。

お礼日時:2004/10/29 19:17

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QJava言語 漢字とひらがなの判別

Java言語でテキストファイルを読み取ってテキストファイルの文字を分節に区切るというプログラムを考えています。ファイルの読み取りはできたのですが、漢字とひらがなの区別の部分がわからないので教えていただきたいです。例えばテキストに"私は太郎です。"と書いてあったらそれを読み取って分節で区切った形で表示するようにしたいです。



私は
太郎です


import java.io.*;
class クラス名 {
public static void main (String[ ] args) throws IOException {
try{
FileReader f = new FileReader("test.txt");
BufferedReader b = new BufferedReader(f);
String s;
while((s = b.readLine())!=null){
System.out.println(s);
}
}catch(Exception e){
System.out.println("ファイル読み込み失敗");
}
}
}

調べてください、勉強しなおしてくださいといった回答はなしでお願いします。

Java言語でテキストファイルを読み取ってテキストファイルの文字を分節に区切るというプログラムを考えています。ファイルの読み取りはできたのですが、漢字とひらがなの区別の部分がわからないので教えていただきたいです。例えばテキストに"私は太郎です。"と書いてあったらそれを読み取って分節で区切った形で表示するようにしたいです。



私は
太郎です


import java.io.*;
class クラス名 {
public static void main (String[ ] args) throws IOException {
try{
FileReader...続きを読む

Aベストアンサー

UnicodeBlockを使えばいいでしょう。UnicodeBlock.ofでcharの文字ブロックを調べ、それがUnicodeBlock.HIRAGANAであれば、ひらがなと判断できます。

if (UnicodeBlock.of( 'あ' ) == UnicodeBlock.HIRAGANA){
System.out.println("ひらがな");
}

ひらがな以外の文字種もいろいろあるのでUnicodeBlockのクラス変数をチェックしてみるとよいでしょう。

http://docs.oracle.com/javase/jp/6/api/java/lang/class-use/Character.UnicodeBlock.html

Q漢字を入力すると自動的に読み仮名を埋めてくれる

アプリケーションで、氏名フィールドに漢字を入力すると自動的に読み仮名を入力してくれるようなものを作成したいと思っています。どのようにすればこのようなことが実現可能でしょうか? サードベンダーのソフトウェアを購入しなければならないのでしょうか? それとも何か標準的なAPI、JavaScript等何でもよいのですが用意されているのでしょうか。ソフトウェアを購入するというのでも構いませんので、最もよい方法を教えて頂きたく、宜しくお願いします。

サンプルとなるサイトを下記に引用しておきます。
https://m.sbisec.co.jp/eatiw011

以上、宜しくお願いします。

Aベストアンサー

何やら他の回答者さんは難しく考えていますが
提示されたサイトと同様のものでよければonkeyupイベントで入力された文字を取得し、
ひらがな・カタカナのチェックやひらがな→カタカナの変換をして
カナのフィールドに入れるだけで良いと思いますよ。

漢字のフィールドで入力し直した場合はカナが綺麗に入りませんが・・

Qpublic static void main (String args[])

基本すぎて申し訳ありませんが、
public static void main (String args[])とはどういう意味を持っていますか?
教えてください。。

Aベストアンサー

staticとかの意味はNo1の方の説明以外にありません。

mainは最初に実行されるメソッドという説明がされますので、「クラスを実行する時の引数とは?」と引っかかっているのかもしれませんね。
これはコマンドライン引数と呼ばれます。

たとえば、次のプログラム

public class ArgsTest{
  public static void main(String[] args){
    System.out.println(args.length);
    for(int i = 0 ; i < args.length ; i++){
      System.out.println(args[i]);
    }
  }
}

これを
>java ArgsTest abcde fghij(エンター)
として実行するとabcdeとfghijが引数となります。

ちなみに、mainはpublicでstaticなメソッドなので、
public class ArgsTest2{
  public static void main(String args[]){
    tamesi();
  }
  void tamesi(){
    String[] test = {"abcde","fghij"};
    ArgsTest.main(test);
  }
}
のように、外部のクラスからクラス名.mainで呼び出せます。(この2つのプログラムは、私が悩んだ時に試しにつくったものです)

ちなみにargsはarguments(=引数)の略で、mainの引数として、よく使われます。
argvのほうはargument valueの略です。C言語を使っていた人の中にはargvを使う人がいるかもしれません。

staticとかの意味はNo1の方の説明以外にありません。

mainは最初に実行されるメソッドという説明がされますので、「クラスを実行する時の引数とは?」と引っかかっているのかもしれませんね。
これはコマンドライン引数と呼ばれます。

たとえば、次のプログラム

public class ArgsTest{
  public static void main(String[] args){
    System.out.println(args.length);
    for(int i = 0 ; i < args.length ; i++){
      System.out.println(args[i]);
    }
  }
}

...続きを読む

QJavaで文字を漢字であるか否かを判定する

ある文字を、漢字であるかそれ以外であるかを判定したいです。Javaの標準でそのようなことは可能なのでしょうか。お手数をおかけしますが、宜しくお願い致します。

Aベストアンサー

http://docs.oracle.com/javase/jp/6/api/java/lang/Character.UnicodeBlock.html#of%28int%29
とか?


人気Q&Aランキング