JPasswordField tfPassword = new JPasswordField(""); //输入密码的密码框stemp= tfPassword.getPassword().toString();
stemp= new String(tfPassword.getPassword());
为什么需要采用第二种方式才能正确获得密码框中的字符串

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【qiglave】截止到2008-06-24 21:50:26的历史汇总数据(不包括此帖):
    发帖数:0                  发帖分:0                  
    结贴数:0                  结贴分:0                  
    未结数:0                  未结分:0                  
    结贴率:-------------------结分率:-------------------
    如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
      

  2.   

    getPassword()返回的是一个char数组,采用new String(char[])可以将char数组转化为字符串。
    第一种形式会调用数组的toString()方法。
      

  3.   

    看清楚 getPassword()返回的是char数组,toString()得到的是个数组对象形式,
    要通过new String(char[] c)才能得到你需要的
      

  4.   

    对的返回的是char的数组 toString调用是重父类继承的toString()
    而stemp= new String(tfPassword.getPassword());
    是用String类   String(char[] a)构造方法
      

  5.   

      
    我看了JDK 的帮助,
    为什么两者都是将char数组转为字符串,得到的结果确不一样,
    这就是我问的问题关键。望指点。 String str = "abc";
     
    is equivalent to: 
         char data[] = {'a', 'b', 'c'};
         String str = new String(data);
      

  6.   

    data.toString()是调用Object类的toString()方法,你看下Object的toString()实现就明白了
    而String是对data数组的封装