2

Java アプリケーションから Windows にインストールされている入力言語を把握しようとしていました。これは、[コントロール パネル] -> [地域と言語] -> [キーボードの変更] (ボタン) -> [一般] -> [インストール済みサービス] (下部パネル) から手動で把握できます。

背景は、アプリケーションで次の呼び出しを使用して Locale.US を強制していることです-

 Component component = getAWTComponent();
 component.getInputContext().selectInputMethod(Locale.US)

ただし、一部のホストでは、米国のキーボード言語がインストールされていません (英国のシステムなど)。言語が利用できないことを確認し、エラーか何かをスローしたかったのです。

また、Java からそのようなサービスをインストールすることは可能ですか (大げさかもしれません..)?

4

3 に答える 3

1

デフォルトのキーボード レイアウトをいじるのは、細心の注意を払って行う必要があります。これを行う場合は、すべての人に特定のレイアウトを強制するのではなく、ユーザーが希望するレイアウトを選択できるようにする必要があります。

私がアプリを書いてドイツ語のキーボードを強制的に使用させようとした場合の反応を想像してみてください。

つまり、API が利用できない場合、有効なキーボード レイアウトにフォールバックしLocale.USます。それを行うコードは、sun.awt.im.InputContext.selectInputMethod()に隠されています。

リフレクションを使用すると、一部のロケールがサポートされているかどうかを確認するコードの部分を複製できるはずです。

于 2013-06-21T13:01:23.140 に答える