我有几种用于编写(繁体中文)台湾人的输入方法,它们与Windows 7一起提供.此外,所有输入方法都有一个选项来切换字符宽度(单字节/双字节字符).
如果我在Java应用程序中选择其中一个输入方法并将字符宽度设置为半角(单字节字符模式),我可以在JTextField中成功输入文本.但是,如果应用程序显示一些对话框(例如JOptionPane)或弹出窗口,则输入法字符宽度将自动更改为全角(双字节字符模式).之后,用户必须手动切换到半角字符.
我可以使用Java类"InputContext"以编程方式打开或关闭输入方法,但是我无法控制输入方法是否设置为全宽/半宽(单/双字节)字符模式.
我想也许可以从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) …Run Code Online (Sandbox Code Playgroud)