在 Java swing (JPasswordField) 中设置亚洲语言(韩语、日语、中文)的密码不起作用
Setting password in Java swing (JPasswordField) in Asian languages (Korean, Japanese, Chinese) does not work
我遇到 JPasswordField 组件尝试使用亚洲复合字符的不一致行为的问题。
我的代码是:
final JCheckBox visiblePassword = new JCheckBox(); // show/hide password checkbox
JPasswordField passwordField = new JPasswordField();
passwordField.setPreferredSize(new Dimension(200, 25));
final char echoChar = passwordField.getEchoChar();
visiblePassword.addActionListener(new ActionListener() // show/hide password
{
public void actionPerformed(ActionEvent evt)
{
if(visiblePassword.isSelected()) passwordField.setEchoChar((char)0);
else passwordField.setEchoChar(echoChar);
}
});
我的目标是允许输入密码中的所有字符。
然而:
Windows 8 - 它根本不起作用(只允许使用拉丁字符 - IME 不起作用)。
Mac OS X - 允许使用韩文字符(但不会将它们合并为一个字符),日文和中文则不允许完全没有工作。
我可以在 iOS 等其他平台上找到此问题的讨论和解决方案:
Selecting language of the keyboard for UITextField with secureTextEntry
但是 Java 挥杆没有任何作用。
所以在我开始实施 "JPasswordField" 的自定义版本之前,我想问一下:
有没有人解决了这个问题,或者你知道一些其他组件,比如 JPasswordField,但适合我的需要?
你知道吗link? JPasswordField (Java Platform SE 8 )
NOTE: By default, JPasswordField disables input methods; otherwise, input characters could be visible while they were composed using input methods. If an application needs the input methods support, please use the inherited method, enableInputMethods(true).
我遇到 JPasswordField 组件尝试使用亚洲复合字符的不一致行为的问题。
我的代码是:
final JCheckBox visiblePassword = new JCheckBox(); // show/hide password checkbox
JPasswordField passwordField = new JPasswordField();
passwordField.setPreferredSize(new Dimension(200, 25));
final char echoChar = passwordField.getEchoChar();
visiblePassword.addActionListener(new ActionListener() // show/hide password
{
public void actionPerformed(ActionEvent evt)
{
if(visiblePassword.isSelected()) passwordField.setEchoChar((char)0);
else passwordField.setEchoChar(echoChar);
}
});
我的目标是允许输入密码中的所有字符。
然而:
Windows 8 - 它根本不起作用(只允许使用拉丁字符 - IME 不起作用)。
Mac OS X - 允许使用韩文字符(但不会将它们合并为一个字符),日文和中文则不允许完全没有工作。
我可以在 iOS 等其他平台上找到此问题的讨论和解决方案:
Selecting language of the keyboard for UITextField with secureTextEntry
但是 Java 挥杆没有任何作用。
所以在我开始实施 "JPasswordField" 的自定义版本之前,我想问一下:
有没有人解决了这个问题,或者你知道一些其他组件,比如 JPasswordField,但适合我的需要?
你知道吗link? JPasswordField (Java Platform SE 8 )
NOTE: By default, JPasswordField disables input methods; otherwise, input characters could be visible while they were composed using input methods. If an application needs the input methods support, please use the inherited method, enableInputMethods(true).