Java登录注册界面v1.0

 

登录注册界面

要求实现功能:登录、注册。

注册:

1)检查是否注册过;

2)检查字符串的合法性;

3)收集数据、存储实例。

登录:

1)检查是否注册过;

2)检查是否登录过;

3)检查验证密码;

4)登录成功,返回相关信息。

下面展示并分析登录注册界面v1.0的Java实现代码。

1)User.java

//User.java

public class User{

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

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    //  属性: 需要直接赋值? 不需要
    String userName;
    String password;
    int age;
    double score;
    boolean isOnline;


    // 显示个人信息
    public void showInfo(){
        System.out.println ("------个人信息----------");
        System.out.println ("姓名:" + userName);
        System.out.println ("密码:" + password);
        System.out.println ("年龄:" + age);
        System.out.println ("积分:" + score);
        System.out.println ("在线状态:" + (isOnline ? "在线" : "离线"));
    }

    // 检查密码
    public boolean checkPassword(String pwdIn){
        return pwdIn.equals(password);
    }

    public boolean login(String pwdIn){
        isOnline = checkPassword(pwdIn);
        return isOnline;
    }

    public void changePassword(String old_pwd, String new_pwd){

        if(checkPassword (old_pwd)){
            password = new_pwd;
            System.out.println ("修改密码成功!!");
        } else{
            System.out.println ("修改密码失败!!");
        }
        
    }
    
}

2)MyLoginUI.java

//MyLoginUI.java


import javax.swing.*;
import java.awt.*;

public class MyLoginUI {
    public static void main(String[] args) {
        JFrame jf = new JFrame();

        String str = "登录界面";
        jf.setTitle(str);
        jf.setSize(500, 600);
        jf.setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);
        jf.setVisible(true);

        FlowLayout flow = new FlowLayout();
        jf.setLayout(flow);
        ImageIcon icon = new ImageIcon("filename");//filename
        JLabel iconLabel = new JLabel(icon);

        JLabel nameLabel = new JLabel("账号:");
        JLabel pwdLabel = new JLabel("密码:");
        //输入框
        JTextField nameJtf = new JTextField();
        JPasswordField pwdJpf = new JPasswordField();
        //按钮
        JButton btn = new JButton();
        JButton btn1 = new JButton();
        btn.setText("登录");
        btn1.setText("注册");

        Dimension dim = new Dimension(410, 35);
        nameJtf.setPreferredSize(dim);
        pwdJpf.setPreferredSize(dim);
        Color color = new Color(245, 191, 191);// 0-255
        btn.setBackground(color);

        jf.add(iconLabel);
        jf.add(nameLabel);
        jf.add(nameJtf);
        jf.add(pwdLabel);
        jf.add(pwdJpf);
        jf.add(btn);
        jf.add(btn1);
        jf.setVisible(true);// 可视化


//
//         按钮 : btn 登录按钮  btn1 注册按钮
//         输入框 : nameJtf 账号输入框  pwdJpf 密码输入框

        // 给按钮添加监听
        LoginListener loginl = new LoginListener();
        btn.addActionListener(loginl);
        btn1.addActionListener(loginl);

        // 点击按钮之后 调用输入框获取内容

        loginl.nameIn = nameJtf;
        loginl.pwdIn = pwdJpf;

    }
}

3)LoginListener.java

//LoginListener.java


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

public class LoginListener implements ActionListener {
    JTextField nameIn;
    JPasswordField pwdIn;

    User[] users = new User[100];
    int size;//记录当前注册的User对象数量
    @Override
    public void actionPerformed(ActionEvent e) {

        String action = e.getActionCommand ();

        String name = nameIn.getText ();

//        ## 登录注册:
//        - 注册
//                - 1:检查是否注册过
//                - 2:检查字符串的合法性
//                - 3:收集数据,创建实例
//                - 4:存储数据
//
//                - 登录
//                - 1:检查是否注册过
//                - 2:检查是否登录过
//                - 3:检查验证密码
//                - 4:登录成功 返回相关信息

        if (action.equals("登录")){
            //检查是否注册过
            for(int i=0;i<size;i++){
                User user = users[i];//定义临时user对象
                if (name.equals(user.getUserName())){
                    //已经注册
                    //检查是否已经在线
                    if (user.isOnline){
                        System.out.println("用户已登录");
                        return;//return退出方法
                        //break跳出循环
                        //continue进入下一个循环
                    }
                    else if (user.login(pwdIn.getText())){
                        //检查密码是否正确
                        System.out.println("登录成功");
                        user.showInfo();
                        return;
                    }
                    else{
                        System.out.println("密码错误");
                        return;
                    }
                }
            }
            System.out.println("请先注册");
        }

        if (action.equals("注册")){
            //检查输入的name是否合法
            //检查是否注册过
            for(int i=0;i<size;i++){
                User user = users[i];//定义临时user对象
                if (name.equals(user.getUserName())){
                    //已经注册
                    System.out.println("已经注册,请直接登录");
                    return;
                }
            }
            //检查输入的pwd是否合法
            //收集数据,存储实例
            users[size] = new User(name, pwdIn.getText());
            size += 1;
            System.out.println("注册成功,编号:"+size);
        }
    }
}

登录注册界面示意图

 

************************关于break、continue和return************************

continue:直接结束本次循环体,进入下一次循环

1)for循环:

for(表达式1; 表达式2; 表达式3){

循环体

}

在for循环中,首先执行表达式1(在整个循环中仅执行一次),接着执行表达式2,若满足条件则执行循环体,如果在循环体中执行了continue则跳转到表达式3处执行,进行下一次循环,执行表达式2看是否满足条件。

2)while循环:

while(表达式){

循环体

}

在while循环中,若执行了continue语句,那么就直接跳转到表达式处,开始下一次的循环判断。

3)do-while循环:

do{

循环体

}while(表达式);

在do while循环体中若执行了continue语句,那么就跳转到表达式处开始进行下一次的循环判断。

break:直接终止它所在的最内层循环或switch-case语句

1)在循环结构中使用break语句,如果执行了break语句,那么就退出循环,接着执行循环结构下面的第一条语句。

2)如果在多重嵌套循环中使用break语句,当执行break语句的时候,退出的是它所在的循环结构,对外层循环没有任何影响。

3)如果循环结构里有switch语句,并且在switch语句中使用了break语句,当执行switch语句中的break语句时,仅退出switch语句,不会退出外面的循环结构。

return:直接退出该函数的执行,返回到函数的调用处

1)如果是main()函数,则结束整个程序的运行。

2)如果是自定义的函数中执行,那么返回到函数的调用处继续往下执行。

************************关于size++和++size************************

使用size++和++size来简化语句。下面3种写法等价。

users[size] = new User(name, pwdIn.getText());
size += 1;
System.out.println("注册成功,编号:"+size);



users[size++] = new User(name, pwdIn.getText());
System.out.println("注册成功,编号:"+size);



users[size] = new User(name, pwdIn.getText());
System.out.println("注册成功,编号:"+(++size));

  • 7
    点赞
  • 98
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 以下是一个简单的 Java 登录注册界面代码示例: ```java import javax.swing.*; import java.awt.*; import java.awt.event.*; public class LoginRegister extends JFrame implements ActionListener { private JLabel userLabel, passLabel; private JTextField userField; private JPasswordField passField; private JButton loginButton, registerButton; public LoginRegister() { setTitle("Login/Register"); setSize(300, 200); setDefaultCloseOperation(EXIT_ON_CLOSE); userLabel = new JLabel("Username:"); passLabel = new JLabel("Password:"); userField = new JTextField(20); passField = new JPasswordField(20); loginButton = new JButton("Login"); registerButton = new JButton("Register"); JPanel panel = new JPanel(new GridLayout(3, 2)); panel.add(userLabel); panel.add(userField); panel.add(passLabel); panel.add(passField); panel.add(loginButton); panel.add(registerButton); add(panel, BorderLayout.CENTER); loginButton.addActionListener(this); registerButton.addActionListener(this); } public void actionPerformed(ActionEvent e) { if (e.getSource() == loginButton) { String username = userField.getText(); String password = new String(passField.getPassword()); // 登录逻辑 JOptionPane.showMessageDialog(this, "Logged in successfully!"); } else if (e.getSource() == registerButton) { String username = userField.getText(); String password = new String(passField.getPassword()); // 注册逻辑 JOptionPane.showMessageDialog(this, "Registered successfully!"); } } public static void main(String[] args) { LoginRegister frame = new LoginRegister(); frame.setVisible(true); } } ``` 这个代码示例使用了 Swing 组件来构建界面。在 `actionPerformed` 方法中,根据用户点击的按钮来进行登录或注册的逻辑处理。你需要根据具体的需求,修改代码来实现你自己的登陆注册界面。 ### 回答2: Java登录注册界面代码通常使用Swing库来实现。下面是一个简单的示例代码: ```java import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class LoginRegister { private static final int WIDTH = 300; private static final int HEIGHT = 200; public static void main(String[] args) { JFrame frame = new JFrame("登录注册界面"); frame.setSize(WIDTH, HEIGHT); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel panel = new JPanel(); frame.add(panel); panel.setLayout(null); JLabel usernameLabel = new JLabel("用户名:"); usernameLabel.setBounds(30, 20, 80, 25); panel.add(usernameLabel); JTextField usernameText = new JTextField(20); usernameText.setBounds(100, 20, 165, 25); panel.add(usernameText); JLabel passwordLabel = new JLabel("密码:"); passwordLabel.setBounds(30, 50, 80, 25); panel.add(passwordLabel); JPasswordField passwordText = new JPasswordField(20); passwordText.setBounds(100, 50, 165, 25); panel.add(passwordText); JButton loginButton = new JButton("登录"); loginButton.setBounds(30, 80, 80, 25); panel.add(loginButton); JButton registerButton = new JButton("注册"); registerButton.setBounds(130, 80, 80, 25); panel.add(registerButton); JLabel statusLabel = new JLabel(""); statusLabel.setBounds(30, 110, 200, 25); panel.add(statusLabel); loginButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { String username = usernameText.getText(); String password = new String(passwordText.getPassword()); if (username.equals("admin") && password.equals("admin")) { statusLabel.setText("登录成功"); } else { statusLabel.setText("登录失败"); } } }); registerButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { String username = usernameText.getText(); String password = new String(passwordText.getPassword()); // 在这里实现注册逻辑 statusLabel.setText("注册成功"); } }); frame.setVisible(true); } } ``` 这个示例代码中创建了一个`JFrame`对象作为窗口,然后使用`JPanel`作为容器添加各种Swing组件。其中包括了用户名输入框、密码输入框、登录按钮、注册按钮和一个状态消息标签。登录按钮和注册按钮的点击事件中,我们可以从用户名输入框和密码输入框中获取输入的用户名和密码,然后进行相应的验证和逻辑操作。最后将窗口设置为可见。这只是一个简单的示例,实际应用中可能还需要进行更多的验证和处理。 ### 回答3: 以下是一个简单的Java登陆注册界面代码示例: ```java import java.util.HashMap; import java.util.Map; import java.util.Scanner; public class LoginRegister { private static Map<String, String> users = new HashMap<>(); public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (true) { System.out.println("请选择操作:1-登录,2-注册,3-退出"); int choice = scanner.nextInt(); if (choice == 1) { login(scanner); } else if (choice == 2) { register(scanner); } else if (choice == 3) { break; } else { System.out.println("无效的选择,请重新输入"); } } } private static void login(Scanner scanner) { System.out.println("请输入用户名:"); String username = scanner.next(); System.out.println("请输入密码:"); String password = scanner.next(); if (users.containsKey(username) && users.get(username).equals(password)) { System.out.println("登录成功"); } else { System.out.println("用户名或密码错误"); } } private static void register(Scanner scanner) { System.out.println("请输入用户名:"); String username = scanner.next(); System.out.println("请输入密码:"); String password = scanner.next(); if (users.containsKey(username)) { System.out.println("用户名已存在,请重新注册"); } else { users.put(username, password); System.out.println("注册成功"); } } } ``` 这个代码示例实现了一个简单的登陆注册界面。用户可以选择1进行登陆,2进行注册,3退出程序。登陆时需要输入用户名和密码,系统会检查输入的用户名和密码是否匹配,并给出相应的登陆成功或失败的提示。注册时需要输入用户名和密码,系统会检查用户名是否已存在,如果不存在则将用户名和密码添加到用户列表中,并给出注册成功的提示。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值