【问题标题】:Receive user name and password from user using jbutton [duplicate]使用jbutton从用户接收用户名和密码[重复]
【发布时间】:2014-09-14 17:16:51
【问题描述】:

我在使用 jbuttonactionperformed 在 java 中接收用户名和密码时遇到问题。这段代码有什么问题。我在google中搜索,看到一个字符数组用于存储getPassword返回。是不是错了?

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

    char[] input = {'r','o','o','t'};
    if (jTextField1.getText() == "admin" && jPasswordField1.getPassword() == input) {
        srchnm.main(null);

    }

}   

【问题讨论】:

    标签: java jbutton jpasswordfield


    【解决方案1】:

    您不应该比较字符串,并避免使用== 比较其他引用类型。对 Strings 使用 equals(...) 方法,而对于密码,java.util.Arrays 类有一个可以使用的 equals 方法。

    if (java.util.Arrays.equals(jPasswordField1.getPassword(), input) && 
               "admin".equals(jTextField1.getText())) {
        srchnm.main(null);
    }
    

    或者,你可以改变这个:

    "admin".equals(jTextField1.getText())
    

    "admin".equalsIgnoreCase(jTextField1.getText())
    

    我自己(气垫船),我喜欢使用字符串常量以避免调试打字错误:

    // at the top
    public static final String ADMIN = "admin";
    
    // ....
    
    // a boolean statement in the if block:
    ADMIN.equals(jTextField1.getText())
    

    【讨论】:

    • 加入社区 wiki,因为我不应该因为这个问题的答案而获得荣誉。
    • 我也可以对字符数组使用 equals 吗?
    • @JithinSebastian:见编辑回答。
    猜你喜欢
    • 1970-01-01
    • 2019-09-03
    • 1970-01-01
    • 1970-01-01
    • 2017-02-04
    • 2018-01-10
    • 1970-01-01
    • 2015-07-25
    • 2018-09-07
    相关资源
    最近更新 更多