Java-实现注册和登录

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.HashMap;
import java.util.Map;

public class LoginWindow extends JFrame implements ActionListener {

    private JTextField usernameField;
    private JPasswordField passwordField;
    private JButton loginButton;
    private JButton registerButton;

    // 用一个Map对象保存用户名和密码
    private Map<String, String> users = new HashMap<>();

    public LoginWindow() {
        // 初始化窗口设置
        setTitle("Login");
        setSize(400, 200);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(new BorderLayout());

        // 创建输入面板和组件
        JPanel inputPanel = new JPanel(new GridLayout(3, 2));

        JLabel usernameLabel = new JLabel("Username:");
        JLabel passwordLabel = new JLabel("Password:");
        usernameField = new JTextField(20);
        passwordField = new JPasswordField(20);

        // 将组件添加到输入面板中
        inputPanel.add(usernameLabel);
        inputPanel.add(usernameField);
        inputPanel.add(passwordLabel);
        inputPanel.add(passwordField);

        // 创建登录和注册按钮
        loginButton = new JButton("Login");
        registerButton = new JButton("Register");
        loginButton.addActionListener(this);
        registerButton.addActionListener(this);

        // 将输入面板和按钮添加到窗口中
        JPanel loginPanel = new JPanel(new FlowLayout());
        loginPanel.add(loginButton);
        loginPanel.add(registerButton);
        add(inputPanel, BorderLayout.CENTER);
        add(loginPanel, BorderLayout.SOUTH);

        // 初始化用户信息
        users.put("admin", "password");
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        // 处理按钮点击事件
        String username = usernameField.getText();
        String password = new String(passwordField.getPassword());

        if (e.getSource() == loginButton) {
            // 登录按钮点击事件
            if (users.containsKey(username) && users.get(username).equals(password)) {
                JOptionPane.showMessageDialog(this, "Login success!");
                dispose();  // 关闭窗口
            } else {
                JOptionPane.showMessageDialog(this, "Username or password is incorrect!");
            }
        } else if (e.getSource() == registerButton) {
            // 注册按钮点击事件
            if (users.containsKey(username)) {
                JOptionPane.showMessageDialog(this, "The username is already taken!");
            } else {
                // 将新用户信息保存
                users.put(username, password);
                JOptionPane.showMessageDialog(this, "Registration success!");
            }
        }
    }

    public static void main(String[] args) {
        // 创建窗口并显示
        LoginWindow window = new LoginWindow();
        window.setVisible(true);
    }
}

这个程序同时实现了登录和注册功能。在程序中,使用一个Map对象来保存所有的账户和密码。当用户单击登录按钮时,程序会从Map中找到对应的用户名和密码,并进行比对,如果验证成功,则输出“Login success!”消息。如果验证失败,则提示用户“用户名或密码不正确”。当用户单击注册按钮时,程序会先检查该用户名是否已经存在。如果存在,则提示用户“该用户名已被占用”,否则将新的用户名和密码添加到Map中,并提示用户“注册成功”。

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值