【问题标题】:Using actionlistener to call a function from another class [duplicate]使用 actionlistener 从另一个类调用函数 [重复]
【发布时间】:2014-09-15 21:57:54
【问题描述】:

动作监听器代码

Player p = new Player();
/**
** Other code here
**/
private static JLabel Status;
final JTextField username = new JTextField(6);
loginButton.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {     
           data = username.getText();
                if(p.Login(data)){
        Status.setText(data+" is correct");
    } else {
        Status.setText(data+" is wrong");
    }
         }
      });

播放器类代码

  public boolean login(String username){
    if(username == "adam"){
        return true;
    } else {
    return false;
    }
  }

无论输入什么,我总是提示用户名错误,我该怎么办?我做错了什么?

【问题讨论】:

    标签: java swing oop actionlistener


    【解决方案1】:

    您必须使用equals() 而不是== 来比较您的字符串。

    注意:== 检查对对象的引用是否相等。

    注意:equals() 此方法将此字符串与指定对象进行比较。当且仅当参数不为 null 并且是表示与此对象相同的字符序列的 String 对象时,结果才为真

    Source for equal function

    【讨论】:

      【解决方案2】:

      您的错误在于:

      public boolean login(String username){
          if(username == "adam"){
              return true;
          } else {
              return false;
          }
      }
      

      你需要改变:

      if(username == "adam"){
      

      收件人:

      if(username.equals("adam")){
      

      这是一个典型的字符串比较错误。希望这会有所帮助:)

      【讨论】:

      • 请解释发生了什么,而不仅仅是发布代码答案
      猜你喜欢
      • 2020-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-06
      • 1970-01-01
      • 2017-03-07
      相关资源
      最近更新 更多