Java 动作按钮和if状态

Java 动作按钮和if状态,java,dispose,Java,Dispose,我的代码有点奇怪 我有一个小表单(设计不好,但现在可以)。用户键入用户名和密码,然后按提交 我为按钮添加了一个动作侦听器方法。起初,它唯一的特点是: 处置() 事实上,当按下时,窗户关闭了 现在,当我添加一个if语句时,就像你在代码中看到的那样,如果值是正确的,它不会做任何事情,但是,如果它是错误的,它会做我在else部分中写的事情 如果我试图用&&和passwordfield添加另一个条件,它会给我错误消息:该方法已被弃用,Eclipse会在getText方法上为密码添加一行 我不明白,没有“

我的代码有点奇怪

我有一个小表单(设计不好,但现在可以)。用户键入用户名和密码,然后按提交

我为按钮添加了一个动作侦听器方法。起初,它唯一的特点是:

处置()

事实上,当按下时,窗户关闭了

现在,当我添加一个if语句时,就像你在代码中看到的那样,如果值是正确的,它不会做任何事情,但是,如果它是错误的,它会做我在else部分中写的事情

如果我试图用&&和passwordfield添加另一个条件,它会给我错误消息:该方法已被弃用,Eclipse会在getText方法上为密码添加一行

我不明白,没有“如果”怎么行,没有“如果”怎么行,用&&…给我警告谢谢

package HR;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JLabel;
import javax.swing.JPasswordField;
import javax.swing.JFormattedTextField;
import javax.swing.JButton;

import java.awt.GridLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class SignIn extends JFrame
{

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    public SignIn()
    {
        this.setTitle("HR SYSTEM LOGIN SCREEN");
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setBounds(100, 100, 308, 179);

        JPanel contentPane = new JPanel(new GridLayout(3,3,1,15));
        this.getContentPane().add(contentPane);

        JLabel userName = new JLabel("User Name");
        contentPane.add(userName);

        JLabel spaces2 = new JLabel("");
        contentPane.add(spaces2);

        final JFormattedTextField userText = new JFormattedTextField();
        contentPane.add(userText);

        JLabel password = new JLabel("Password");
        contentPane.add(password);

        JLabel spaces3 = new JLabel("");
        contentPane.add(spaces3);

        final JPasswordField passwordText = new JPasswordField();
        contentPane.add(passwordText);

        JLabel spaces1 = new JLabel("");
        contentPane.add(spaces1);

        JButton signButton = new JButton("Sign In");
        contentPane.add(signButton);

        JLabel spaces4 = new JLabel("");
        contentPane.add(spaces4);

        signButton.addActionListener(new ActionListener() 
        {

            @Override
            public void actionPerformed(ActionEvent e) 
            {

                if (userText.getText()=="ABC")
                {
                    dispose();
                }
                else userText.setText("ABC");
            }
        });


    }

}

您正在将字符串与==而不是equals()进行比较


使用String.equals方法在if条件下比较字符串。字符串比较应该使用.equals()而不是==来完成。例如:if(userText.getText().equals(“ABS”)对,谢谢,它确实有效,但是,当我这样做时:if(userText.getText().equals(“ABC”)和&passwordText.getText().equals(“1234”))eclipse再次给了我这个警告消息,并在密码的getText方法上加了一行。没错。当我学习OOP基础Java课程时,讲师告诉我们不要将string方法与equals()方法进行比较。+1您需要使用
getPassword()
。检查它。始终检查文档。@user3275222该警告可能是NullPointerException警告。若要修复,它应该是
if(“ABC.equals”(userText.getText())
if (userText.getText().equals("ABC") {
    ...
}