我嘗試使用亞洲複合字符的JPasswordField組件的不一致行爲有問題。使用亞洲語言(韓語,日語,中文)在Java swing(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中一些其他的組成部分,但適合我的需要?
是的,它看起來很有效。我已經看到,但沒有測試它,有一句話「默認情況下,輸入法支持已啓用。」在上下文幫助。但是文本可能是從java.awt.Component繼承而來 - 謝謝!我會重新測試它,然後接受答案。 – Metatron 2015-03-03 11:21:48