我需要使登录按钮转到系统的下一个班级(页面) 在atm上,我添加了一些我在视频中看到并阅读的按钮,并且真的很想完成这项工作。
所以我玩了一些命令,但是不认为我做对了。
您能告诉我我在做错什么吗?
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JToolBar;
import javax.swing.JTextField;
import javax.swing.JLabel;
import javax.swing.JSeparator;
import javax.swing.JTable;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.util.Scanner;
public class system {
protected static final int Admin = 0;
private JFrame frame;
private JTextField Usernameinput;
private JTextField Passwordinput;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
Scanner input = new Scanner(System.in);
public void run() {
try {
system window = new system();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public system() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 534, 365);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
JButton btnLogin = new JButton("Login");
btnLogin.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String username;
String password;
System.out.println("Log in:");
System.out.println("username: ");
Scanner input = null;
username = input.next();
System.out.println("password: ");
password = input.next();
//users check = new users(username, password);
if (Usernameinput.equals(Admin) && Passwordinput.equals(Admin)) {
System.out.println("Welcome");
};
}
});
btnLogin.setBounds(29, 242, 89, 23);
frame.getContentPane().add(btnLogin);
JButton btnReset = new JButton("Reset");
btnReset.setBounds(144, 242, 89, 23);
frame.getContentPane().add(btnReset);
JButton btnExit = new JButton("Exit");
btnExit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
System.exit(0);
}
});
btnExit.setBounds(397, 282, 89, 23);
frame.getContentPane().add(btnExit);
Usernameinput = new JTextField();
Usernameinput.setBounds(144, 74, 209, 20);
frame.getContentPane().add(Usernameinput);
Usernameinput.setColumns(10);
Passwordinput = new JTextField();
Passwordinput.setColumns(10);
Passwordinput.setBounds(144, 106, 209, 20);
frame.getContentPane().add(Passwordinput);
JLabel lblUsername = new JLabel("Username:");
lblUsername.setBounds(73, 77, 55, 14);
frame.getContentPane().add(lblUsername);
JLabel lblPassword = new JLabel("Password:");
lblPassword.setBounds(73, 108, 55, 17);
frame.getContentPane().add(lblPassword);
JSeparator separator = new JSeparator();
separator.setBounds(10, 211, 498, 2);
frame.getContentPane().add(separator);
JSeparator separator_1 = new JSeparator();
separator_1.setBounds(10, 57, 498, 2);
frame.getContentPane().add(separator_1);
JLabel lblNewLabel = new JLabel("Welcome to The System v 0.1");
lblNewLabel.setBounds(182, 5, 151, 41);
frame.getContentPane().add(lblNewLabel);
}
}
答案 0 :(得分:1)
您的btnLogin.addActionListener
中有一个错误。您在这里不需要input
。通常,我们需要Scanner
从控制台读取输入。
但是现在有了UI,我们可以从特定的JTextField
获取用户输入。对于您来说,Usernameinput
的用户名和Passwordinput
的密码。
username = Usernameinput.getText();
password = Passwordinput.getText();
接下来,您的if
中的btnLogin.addActionListener
语句必须检查JTextFields
中的文本。由于我们已经获得了它们并将它们保存在变量username
和password
中,因此您可以使用它们。
您不能将String.equals
方法与int
一起使用。由于变量username.equals(Admin)
是false
,Admin
将始终返回int
。所以改变
if (username.equals("username") && password.equals("password")) {
System.out.println("Welcome");
};
最后,您可以删除未使用的import
语句(可选)。
import javax.swing.JToolBar;
import javax.swing.JTable;
答案 1 :(得分:0)
嗨,谢谢您的帮助
但是像现在一样,如果我按“登录”,它会转到一个控制台页面,在那里表示欢迎,但希望它可以转到下一堂课?
答案 2 :(得分:0)
没关系发现如何添加
现在我只需要利用第二帧