使用actionlistener从另一个类调用函数

时间:2014-09-15 21:57:54

标签: java swing oop actionlistener

Actionlistener代码

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;
    }
  }

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

2 个答案:

答案 0 :(得分:2)

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

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

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

Source for equal function

答案 1 :(得分:2)

您的错误在:

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

您需要更改:

if(username == "adam"){

要:

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

这是一个经典的String比较错误。希望这会有所帮助:)