JAVA 中getpassword方法

来源:百度知道 编辑:UC知道 时间:2024/06/01 04:03:29
做一个登录窗体,JPasswordField JP_password;
用if ((jT_username.getText().equals(user))&& (JP_password.getText().equals(pwd))) {
System.out.println("success");
}验证成功;
但是JDK中说getText()已过期用getPassword代替,但是替换后就验证错误了。
高手指教,事成后在加分。
谢谢
system.out.println(JP_password.getPassword);的返回值就是设定好的密码
但是JP_password.getText().equals(pwd)就不对了

我查了下API。

jdk1.5中有getPassword方法.

getPassword() 返回此 TextComponent 中所包含的文本。

getPassword
public char[] getPassword()返回此 TextComponent 中所包含的文本。如果基础文档为 null,则将给出 NullPointerException。为了取得较高的安全性,建议将每个字符设置为零以便在使用后清除返回的字符数组。

返回:文本

你可以查看API文档,上面说getText() 已过时。 从 Java 2 platform v1.2 开始,由 getPassword 来代替。

至于楼主所说的改成getPassword ()后就验证错误了,我想是因为返回值的原因。。。

可以这样做
String password= new String(jT_password.getPassword());
if ((jT_username.getText().equals(user))&& (password.equals(pwd))) {
System.out.println("success");
}

这个问题是出现在jdk版本中..
在1.5后的版本中.getPassword()方法并不是过期.而是不推荐使用
你的中文doc翻译导致你错误理解.

getPassword()貌似这个方法存在bug
所以不推荐使用
不用理它..呵呵~~

估计是取出来的字符串可能是经过加密的,你用
debug形式查看一个那个getPassword返回的结果吧。

把第二个getText()改成getPassword()可以不?