实现一个简单的UI用户登录系统

User

package LoginSystem;


public class User {
    private String username;
    private String password;


    public User(String username, String password) {
        this.username = username;
        this.password = password;
    }

    public String getUsername() {
        return username;
    }

    public String getPassword() {
        return password;
    }


}

UI界面

package LoginSystem;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class UITest extends JFrame implements ActionListener {

    private JPanel panel;
    private JTextField usernameField;
    private JPasswordField passwordField;
    private JButton loginButton;
    private JLabel messageLabel;
    private LoginService loginService;

    public UITest(LoginService loginService) {
        this.loginService = loginService;
        createUIComponents();
        setUpFrame();
        loginButton.addActionListener(this); // 绑定监听器
    }

//创建窗体
    private void createUIComponents() {
        panel = new JPanel(new GridLayout(5, 2, 5, 5));
        panel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));

        usernameField = new JTextField(20);
        passwordField = new JPasswordField(20);
        loginButton = new JButton("登录");
        messageLabel = new JLabel();


        panel.add(new JLabel("用户名:"));
        panel.add(usernameField);
        panel.add(new JLabel("密码:"));
        panel.add(passwordField);
        panel.add(loginButton);

    }

//窗体的设置
        private void setUpFrame() {
            this.setTitle("用户登录");
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            this.setSize(300, 200); // 修改高度以适应内容
            this.setResizable(false);
            this.add(panel);
            this.setLocationRelativeTo(null);
            this.setVisible(true);
        }



//逻辑实现
        public void actionPerformed(ActionEvent e) {
            String username = usernameField.getText();
            String password = new String(passwordField.getPassword());

            if (loginService.login(username, password)) {
                JOptionPane.showMessageDialog(
                        null, // 父组件,null表示没有
                        "恭喜您登陆成功", // 要显示的消息
                        "登录成功", // 对话框标题
                        JOptionPane.INFORMATION_MESSAGE // 消息类型
                );
                System.out.println("登录成功");
                dispose(); // 关闭登录窗口
            } else {
                    JOptionPane.showMessageDialog(
                            null, // 父组件,null表示没有
                            "很遗憾,您登陆失败", // 要显示的消息
                            "登录失败", // 对话框标题
                            JOptionPane.INFORMATION_MESSAGE // 消息类型
                    );
                }

        }

    }

登录逻辑

package LoginSystem;

@SuppressWarnings("all")
class LoginService {

    // 直接在类中创建一个User对象,代表唯一的用户
    private  User user; // 静态变量
    // 用真实的用户名和密码初始化user对象
    public   void validUser(User user) {
        this.user = user;
    }

    // login方法现在接受用户名和密码作为参数
    public boolean login(String username, String password) {
        // 检查传入的用户名和密码是否与存储的有效用户信息匹配
        if (user != null && user.getUsername().equals(username) && user.getPassword().equals(password)) {
        return true;
        }
        return false;
        }

        

Main

package LoginSystem;

import javax.swing.*;



public class Main {
    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> {

            User validUser = new User("wy", "123456"); // 假设这是有效的用户名和密码
            LoginService loginService = new LoginService();
           loginService.validUser(validUser);


            new UITest(loginService);
        });
    }
}

运行结果

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值