如何回显char而不是在JTextField中按下的键

时间:2013-03-29 11:44:12

标签: java swing

我需要回显一个特定字符而不是JTextField中按下的键。 产生的效果就像我按k键,但*出现在文本字段中。

2 个答案:

答案 0 :(得分:1)

如何使用JPasswordField呢?它是JTextField

的子类
  

允许编辑单行文本,其中视图指示输入的内容,但不显示原始字符。

(来自Javadoc的报价)

关于需要动态转换字符的补充,您可能希望查看UpperCaseFieldUpperCaseField的{​​{1}}示例。它可以很容易地转换成一些逻辑,将每个角色转换为另一个角色。

答案 1 :(得分:1)

您需要使用JPasswordField。使用setEchoChar(char),您可以回显任何想要的角色。

更新根据OP comments,如果要求根据用户按下的不同键回显不同的字符,可以使用keyTyped事件,如下所示:

sampleTextBox.addKeyListener(new KeyAdapter() {
        @Override
        public void keyTyped(KeyEvent event) {
            event.setKeyChar(getCharToEcho(event.getsetKeyChar())); 
                            // getCharToEcho(char inputKey) will return the key to
                            // echo depending upon the key entered by the user
        }
    });