- - PR -
SwingアプリでIME制御
1
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2004-08-26 10:13
おはようございます。
現在、Swingを利用したアプリケーションを作成しています。 ここでは、例えば、マスタメンテのようなGUI画面だとします。 環境はWindows限定で話を進めさせてもらいます。 このようなマスタメンテや業務系のアプリの場合、 項目によってIMEの制御を行なって、自動で半角/全角や 英数字などで入力させる場合が多いと思います。 Javaからは直接Win32APIをコールする事ができない、というのは いろいろ調べていくうちにわかりました。 ここで皆さんに質問なのですが、このようなIMEの制御を 行いたい場合、他にどのような手段があるのかアドバイスを いただけないでしょうか。 | ||||
|
投稿日時: 2004-08-26 10:24
elwoodさん、こんにちは。
java.awt.im.InputContext#selectInputMethod(Locale) どうでしょうか。 | ||||
|
投稿日時: 2004-08-26 10:40
いまはどうか知らんけど、昔は selectInputMethod(Locale) はダメだったなあ。
java.awt.im.InputContext#setCharacterSubsets(Character.Subset[]) を 使うのが正しいらしいよ。Java House で設計に関わった人がそう言ってた。 あと↓ここも参考になると思う。 http://satoshi.kinokuni.org/tech/SwingTipsString.html#section3 | ||||
|
投稿日時: 2004-08-26 10:49
Kissingerさん、未記入さん、回答ありがとうございます。
今、APIドキュメントや参考リンクを参照しましたが、 完全に制御できるわけではなさそうですね。 とりあえず、この二つを参考にプログラムしてみます。 引き続き、他にも参考リンクなどございましたら よろしくお願いします。 | ||||
|
投稿日時: 2004-08-26 10:55
未記入さんも書かれていますが、setCharacterSubsets(Character.Subset[] subsets)を使用します。
FocusAdapterを継承したクラスでこんな感じに私は書いて使ってました。
参考になればいいのですが・・・ | ||||
|
投稿日時: 2004-08-26 11:43
想馬さんが書いていただいたサンプルコードで
無事動作致しました。 Kissingerさん、未記入さんの参考サイトで概要を掴む事ができ、 想馬さんのサンプルコードで、そのものズバリで動作しました。 皆さんありがとうございました。 | ||||
1
