import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Login extends JFrame implements ActionListener { private JLabel label1, label2; private JTextField textField; private JPasswordField passwordField; private JButton button1, button2; public Login() { setTitle("用户登录"); setSize(300, 200); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); label1 = new JLabel("用户名:"); label2 = new JLabel("密码:"); textField = new JTextField(20); passwordField = new JPasswordField(20); button1 = new JButton("登录"); button2 = new JButton("重置"); JPanel panel1 = new JPanel(); panel1.setLayout(new GridLayout(2, 1)); JPanel panel2 = new JPanel(); panel2.setLayout(new GridLayout(2, 2)); panel2.add(label1); panel2.add(textField); panel2.add(label2); panel2.add(passwordField); panel1.add(panel2); JPanel panel3 = new JPanel(); panel3.add(button1); panel3.add(button2); panel1.add(panel3); button1.addActionListener(this); button2.addActionListener(this); add(panel1); setVisible(true); } public void actionPerformed(ActionEvent e) { if (e.getSource() == button1) { String username = textField.getText(); String password = new String(passwordField.getPassword()); if (username.equals("admin") && password.equals("123456")) { JOptionPane.showMessageDialog(null, "登录成功!"); } else { JOptionPane.showMessageDialog(null, "用户名或密码错误,请重新输入!"); } } else { textField.setText(""); passwordField.setText(""); } } public static void main(String[] args) { new Login(); } }
时间: 2024-04-22 22:27:43 浏览: 10
这段代码是一个基于 Java Swing 的简单用户登录界面程序,具体的每行代码意思如下:
1. `import javax.swing.*; import java.awt.*; import java.awt.event.*;`:导入了 Java Swing、AWT 和事件相关的包。
2. `public class Login extends JFrame implements ActionListener {`:定义了一个名为 Login 的类,继承了 JFrame 类,并实现了 ActionListener 接口。
3. `private JLabel label1, label2;`:定义了两个 JLabel 类型的私有成员变量 label1 和 label2。
4. `private JTextField textField;`:定义了一个 JTextField 类型的私有成员变量 textField。
5. `private JPasswordField passwordField;`:定义了一个 JPasswordField 类型的私有成员变量 passwordField。
6. `private JButton button1, button2;`:定义了两个 JButton 类型的私有成员变量 button1 和 button2。
7. `public Login() { ... }`:Login 类的构造函数,定义了界面的布局及控件。
8. `setTitle("用户登录");`:设置窗口的标题为“用户登录”。
9. `setSize(300, 200);`:设置窗口的大小为 300x200 像素。
10. `setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);`:设置窗口的关闭方式为“关闭窗口时退出程序”。
11. `label1 = new JLabel("用户名:");`:创建一个 JLabel,并设置文本内容为“用户名:”。
12. `label2 = new JLabel("密码:");`:创建一个 JLabel,并设置文本内容为“密码:”。
13. `textField = new JTextField(20);`:创建一个 JTextField,并设置宽度为 20 个字符。
14. `passwordField = new JPasswordField(20);`:创建一个 JPasswordField,并设置宽度为 20 个字符。
15. `button1 = new JButton("登录");`:创建一个 JButton,并设置文本内容为“登录”。
16. `button2 = new JButton("重置");`:创建一个 JButton,并设置文本内容为“重置”。
17. `JPanel panel1 = new JPanel();`:创建一个 JPanel 对象 panel1。
18. `panel1.setLayout(new GridLayout(2, 1));`:设置 panel1 的布局为网格布局,2 行 1 列。
19. `JPanel panel2 = new JPanel();`:创建一个 JPanel 对象 panel2。
20. `panel2.setLayout(new GridLayout(2, 2));`:设置 panel2 的布局为网格布局,2 行 2 列。
21. `panel2.add(label1);`:将 label1 添加到 panel2 中。
22. `panel2.add(textField);`:将 textField 添加到 panel2 中。
23. `panel2.add(label2);`:将 label2 添加到 panel2 中。
24. `panel2.add(passwordField);`:将 passwordField 添加到 panel2 中。
25. `panel1.add(panel2);`:将 panel2 添加到 panel1 中。
26. `JPanel panel3 = new JPanel();`:创建一个 JPanel 对象 panel3。
27. `panel3.add(button1);`:将 button1 添加到 panel3 中。
28. `panel3.add(button2);`:将 button2 添加到 panel3 中。
29. `panel1.add(panel3);`:将 panel3 添加到 panel1 中。
30. `button1.addActionListener(this);`:为 button1 添加一个 ActionListener。
31. `button2.addActionListener(this);`:为 button2 添加一个 ActionListener。
32. `add(panel1);`:将 panel1 添加到窗口中。
33. `setVisible(true);`:设置窗口可见。
34. `public void actionPerformed(ActionEvent e) { ... }`:实现 ActionListener 接口中的 actionPerformed 方法,处理按钮被点击时的事件。
35. `if (e.getSource() == button1) { ... }`:判断事件源是否为 button1。
36. `String username = textField.getText();`:获取 textField 中的文本内容,赋值给变量 username。
37. `String password = new String(passwordField.getPassword());`:获取 passwordField 中的密码内容,赋值给变量 password。
38. `if (username.equals("admin") && password.equals("123456")) { ... }`:判断用户名和密码是否正确,如果正确就弹出一个对话框,显示“登录成功!”;否则弹出一个对话框,显示“用户名或密码错误,请重新输入!”。
39. `textField.setText("");`:将 textField 的文本内容清空。
40. `passwordField.setText("");`:将 passwordField 的密码内容清空。
41. `public static void main(String[] args) { ... }`:程序的入口点,创建 Login 对象,启动程序。