java中JPasswordField如何在输入之后获取输入的值,就是已经创建了一个密码框的组件,

java中JPasswordField如何在输入之后获取输入的值,就是已经创建了一个密码框的组件,但是里面什么也没输入,在手动输入之后怎样获取到刚才输入的值!

你好
想要获取,肯定要一个事件来触发,这样,触发的事件,可以设置为,敲击键盘事件,那么就可以为该密码框新增一个键盘敲击事件,事件的处理,就是点击之后,取得密码框的值。追问

麻烦您能说的具体一点吗?我在密码框那里设置了键盘事件,然后怎么做呢?还是获取不到啊

追答

你可以设置一个全局变量,就是静态属性,通过键盘事件,将从密码框获取到的密码值获取出来(getPassword),存在静态变量里,这样,每一次敲击键盘,都会将密码框里最新的密码取出来放进去

追问

您说的键盘事件是自定义事件吗?还是keylistener,我添加的是keylistener,然后不知道在方法里面怎么写,我尝试设置全局变量,然后没按下一次键盘获取值先存入到一个char数组里面,输入完了再存放到开始设置的全局变量里面,但是还是不行

追答

你好,请参考

        //增加事件
        jPasswordField.addKeyListener(new KeyAdapter() {
            @Override
            public void keyReleased(KeyEvent e) {
                super.keyReleased(e);
                //获得密码框的密码
                char[] chars = jPasswordField.getPassword();
                //并设置到文本框里
                jTextField.setText(new String(chars));
            }
        });

 要注意的是,事件要设置为键弹上来的事件,否则获取不到最后输入的字符

追问

谢谢~~

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-12-11
当焦点离开密码框的时候,获取就行了,你找下java的焦点事件
第2个回答  2015-12-11
给这个组件添加事件监听方法
监听器方法根据发送的动作来确定。
假设发生一个鼠标点击的动作,那么要给事件源添加鼠标的监听器方法。
假设你想让事件源获取焦点时,执行某一件事情,那么你就要给事件源添加焦点事件监听器方法。
addActionListener() ActionListener 动作监听器接口
addMouseListener() MouseListener 鼠标监听器接口
addMouseMotionListener() MouseMotionLIstener 鼠标移动监听器接口
addKeyListener() KeyListener 键盘监听器接口
你的情况可以添加动作监听器接口或者键盘监听器接口
代码如下:

JPasswordField jpf = new JPasswordField();//创建密码框
//设置事件监听
//实例化一个监听器,通过构造函数传参,该监听器是自定义的,定义方法参见下面的代码
ActionListener ac = new WriteActionListener(jpf);
//给密码框绑定监听事件
jpf.addActionListener(ac);

//实现了键盘事件监听器接口
public class WriteActionListener implements ActionListener {
private JPasswordField password;
public WriteActionListener(JPasswordField password){
this.password = password;
}
//实现接口中的抽象方法
public void actionPerformed(ActionEvent e) {
//得到输入的密码值

String password_value =(String) password.getText();
}
}
第3个回答  2015-12-11
getText()追问

不行啊

我在文本框里面打字,然后调用getText方法根本就没有输出