【无标题】

该博客介绍了如何创建一个GUI登录界面,包括注册视图、登录视图和集成视图的实现。通过使用Java Swing库,创建了包含可切换选项卡的界面,允许用户在注册和登录之间进行切换。在注册过程中,用户输入ID、生日和密码,而登录时则验证这些信息。整个过程涉及事件监听器和数据处理类,确保用户输入的有效性和安全性。
摘要由CSDN通过智能技术生成

GUI———登录界面

登录界面的整体思路:
首先,创建一个注册视图,再创建一个登录视图,再将登录视图和注册视图结合为一个集成视图,最后将集成视图嵌入进主视图,最终成功创建了登录界面。
亮点是有可切换界面的选项卡组件

1、RegisterView注册视图

package geng.view;
import java.awt.*;
import javax.swing.*;               //注册视图 第一个做
import java.awt.event.*;
import geng.model.*;
import geng.handle.*;

public class RegisterView extends JPanel implements ActionListener {
    Register register;           // 创建一个注册对象 下面需要用到
    JTextField inputID,inputBirth;//创建ID和生日的文本框

    JPasswordField inputPassword;//使密码框可编辑
    JButton buttonRegister; // 注册按钮
    RegisterView(){
        register = new Register();
        inputID = new JTextField(12); //定义文本域 支支持单行输出
        
        inputPassword = new JPasswordField(12);  
        //密码框,可输入长度为12
        inputBirth = new JTextField(12);
        buttonRegister = new JButton("注册");
        //下面将所需按钮添加至注册面板
        add(new JLabel("ID:"));
        //Label 文本可视化

        add(inputID);
        add(new JLabel("密码:"));
        add(inputPassword);
        add(new JLabel("出生日期( * * * * - * * - * *):"));
        add(inputBirth);
        add(buttonRegister);
        buttonRegister.addActionListener(this);//监听器 返回此对象
    }
    
    public void actionPerformed(ActionEvent e){
        register.setID(inputID.getText());     //监听器
        char [] pw = inputPassword.getPassword();  //设置数组并返回此对象
        register.setPassword(new String(pw));
        register.setBirth(inputBirth.getText());
        HandleRegister handleRegister = new HandleRegister();
        handleRegister.writeRegisterModel(register);
    }
}

2、LoginView登录视图


package geng.view;
import java .awt.;
import javax.swing.*;
import java.awt.event.*;          //第二步 弄登录视图
import geng.model.*;
import geng.handle.*;
public class LoginView extends JPanel implements ActionListener{

    // 创建新对象
    Login login;
    JTextField inputID;
    //创建ID文本框
    JPasswordField inputPassword;
    //创建登录按钮
    JButton buttonLogin;
    boolean loginSuccess;    //定义接口变量
    LoginView() {
        login = new Login();
        //新建对象

        inputID = new JTextField(12);
        //inputID为自定义对象
        inputPassword = new JPasswordField(12);
        //定义文本限定长度
        buttonLogin = new JButton("登录");

        //按钮添加可视化
        add(new JLabel("ID:"));
        add(inputID);
        add(new JLabel("密码:"));
        add(inputPassword);
        add(buttonLogin);
        buttonLogin.addActionListener(this);
        //监听器 返回此对象
    }
    public boolean isLoginSuccess(){
        return loginSuccess;
    }
    //定义,返回接口变量
    public void actionPerformed(ActionEvent e) {
        login.setID(inputID.getText());
        char [] pw = inputPassword.getPassword();
        login.setPassword(new String(pw));
        HandleLogin handleLogin = new HandleLogin();
        login = handleLogin.queryVerify(login);
        loginSuccess = login.getLoginSuccess();
    }
}

3、登录界面注册界面的集成界面

此界面是我添加了一个选项卡,将两部分集成

package geng.view;
import javax.swing.*;  //第三步 登录和注册视图集成为一个视图
import java.awt.*;

public class RegisterAndLoginView extends JPanel{
    
    JTabbedPane p;  
    //定义一个选项卡组件
    //两个视图的切换 选项卡组件
    
    RegisterView registerView;//创建新对象
    LoginView loginView;
    public RegisterAndLoginView(){
        registerView = new RegisterView();
        loginView = new LoginView();
        setLayout(new BorderLayout());   //布局管理器
        p = new JTabbedPane();
        
        //添加选项卡按钮
        p.add("我要注册",registerView); //
        p.add("我要登录",loginView);
        p.validate();   //登录验证
        add(p,BorderLayout.CENTER);   // 边界布局 东西南北中
    }
    public boolean isLoginSuccess() {
        return loginView.isLoginSuccess();
    }
}

MainView主界面


import geng.view.RegisterAndLoginView;
import javax.swing.*;
import java.awt.*;                   //最后和主视图结合成为最后的完整界面
import java.awt.event.*;
public class MainWindow extends JFrame implements ActionListener{
    JButton computerButton;
    // 创建新对象

    RegisterAndLoginView view;
    MainWindow(){


        //设置尺寸
        setBounds(100,100,800,260);
        view = new RegisterAndLoginView();
        computerButton = new JButton("玩猜数字");

        //返回监听事件
        computerButton.addActionListener(this);
        //边界布局 
        add(view,BorderLayout.CENTER);
        add(computerButton,BorderLayout.NORTH);
        
        setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        //可视化
        setVisible(true);
    }
    public void actionPerformed(ActionEvent e) {           
        if(view.isLoginSuccess() == false){      
            
            // 判断是否登陆成功
            JOptionPane.showMessageDialog(null,"请登录","登录提示",
                                         JOptionPane.WARNING_MESSAGE); 
            // 显示一个具有ok按钮的对话框
        }
        else {
            WindowGuessNumber win = new WindowGuessNumber();
               win.setTitle("猜数字");
        }
    }
    public static void main(String args[]) {
        MainWindow window = new MainWindow();
        window.setTitle("登陆后玩猜数字游戏");
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值