Windows 7 に付属している (繁体字中国語) 台湾語を書くための入力方法がいくつかあります。また、すべての入力方法には、文字幅 (1 バイト/2 バイト文字) を切り替えるオプションがあります。
- 中国語 (繁体字) - 新しいクイック
- 中国語 (繁体字) - ChangJie
- 中国語 (繁体字) - クイック
- 中国語 (繁体字) - ふりがな
- 中国語 (繁体字) - 新音声
- 中国語 (繁体字) - New ChangJie
Java アプリケーションでこれらの入力方法のいずれかを選択し、文字幅を半角 (半角文字モード) に設定すると、JTextField にテキストを正常に入力できます。ただし、アプリケーションが何らかのダイアログ ボックス (JOptionPane など) やポップアップ ウィンドウを表示する場合、インプット メソッドの文字幅は自動的に全角 (2 バイト文字モード) に変更されます。その後、ユーザーは手動で半角文字に切り替える必要があります。
Java クラス「InputContext」を使用してプログラムでインプット メソッドのオンとオフを切り替えることはできますが、インプット メソッドが全角/半角 (1 バイト/2 バイト) 文字モードに設定されているかどうかを制御できません。
Windowsの入力方式の設定から無効にできるのではないかと思いましたが、文字幅の自動切り替えに関するオプションはありませんでした。
問題は、この自動トグルを処理 (無効化) する方法はありますか?
上記の入力方法でこれをテストするコードの例を次に示します。
public class Example implements ActionListener {
JFrame f = new JFrame("pasod");
JTextField txt = new JTextField();
Button btn = new Button("Locale");
public Example() {
JPanel panel = new JPanel();
panel.setLayout(new GridLayout());
btn.addActionListener(this);
panel.add(btn);
panel.add(txt);
f.add(panel);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.pack();
f.setSize(800, 100);
f.setVisible(true);
}
public static void main(String[] args) {
new Example();
}
public void actionPerformed(ActionEvent arg0) {
JOptionPane.showMessageDialog(btn, "Neso", "Neso",
JOptionPane.INFORMATION_MESSAGE);
}
}
ありがとう。