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