蓝杰学习01--登陆界面验证用户名和密码

    xiaoxiao2023-11-10  173

    今天第一次在蓝杰学习,飞哥给我们讲了一些关于界面,事件监听和接口的一些知识。学完之后给我们布置了一个作业,就是编写一个登陆界面验证用户名和密码。 ** 要用到的类:JFrame(窗体)、FlowLayout(流布局方式)、ImageIcon(图像图标)、JTextField(文本输入框)、JPasswordField(密码输入框)、JLabel(标签)、按钮(JButton)、Dimension(用来设置组件的高度与宽度) ** 1、思路 大概的思路就是:先创建一个JFrame窗体,设置它的一些属性(比如大小,名称,位置等);然后创建一些组件并设置它们的一些属性,这里要用到标签,文本输入框,密码框,按钮等;最后就是给按钮添加事件监听器。

    我最后还加了一个小改进,就是如果登陆成功了,就会弹出一个对话框提示登陆成功,然后原来的登录界面和对话框就会消失。

    难点:事件监听 事件监听就是给事件源添加事件监听器,当事件源上发生相应类型的事件时,就会自动调用监听器中的事件处理方法。

    这里出现了三个关键词:事件、事件源、事件监听器,那我就说一说这三个词的意思:

    事件:就是用外部设备(鼠标,键盘,动作等)操作组件。这是一个动词,一个动作。 鼠标事件:用鼠标操作组件(比如鼠标的位置,拖拽之类的;还有操作类型) 键盘事件:用键盘操作组件 动作事件:用鼠标点击按钮(是否点击、点击的是哪一个按钮) 这里大家可能会想:鼠标事件不就是包含了动作事件吗?其实它们是不同的,动作事件关注的只是鼠标是否点击了某个组件,点击的是哪个组件,而不会关注点击的是组件的那个位置。

    事件源:就是当前事件发生的组件。

    事件监听器:每一种类型的事件都有一个相对应类型的事件监听器: 鼠标事件对应鼠标监听器:MouseListener 键盘事件对应键盘监听器:KeyListener 动作事件对应动作监听器:ActionListener

    现在来说一下事件监听的实现步骤: (1)确定事件源,比如说登录按钮。 (2)确定事件的类型,比如是动作事件。 (3)创建一个类,这个类要实现相对应类型事件监听器的接口(这个事件监听器就是一个接口) (4)重写接口的方法,就是给事件源添加监听器。

    废话不多说,直接上代码:

    2、登陆界面

    import java.awt.Dimension; import java.awt.FlowLayout; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPasswordField; import javax.swing.JTextField; //界面类 public class LoginUI { //显示界面的方法 public void showUI() { //创建一个窗体对象 JFrame loginFrame = new JFrame(); //设置窗体的属性大小、 loginFrame.setSize(600, 650); loginFrame.setLocationRelativeTo(null);//位置居中 loginFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//点击关闭按钮退出程序 //设置窗体的布局方式 FlowLayout layout = new FlowLayout();//流布局 loginFrame.setLayout(layout);//设置布局方式 //创建图片对象 ImageIcon icon = new ImageIcon("C:\\Users\\Admin\\Pictures\\PENG男神\\22d9574b26604e93ac7573b34e4dd98b_th.png"); //创建一个图片标签对象 JLabel iconLabel = new JLabel(icon); Dimension iconSize = new Dimension(500, 500); iconLabel.setPreferredSize(iconSize); //添加图片标签对象到窗体上 loginFrame.add(iconLabel); //创建一个输入框对象 JTextField nameInput = new JTextField(); //设置输入框的大小 Dimension inputSize = new Dimension(400, 30); nameInput.setPreferredSize(inputSize); //添加输入框到窗体上 loginFrame.add(nameInput); //创建一个显示文字的标签 JLabel registerLabel = new JLabel("登录账号"); //添加标签到窗体上 loginFrame.add(registerLabel); //创建一个密码框 JPasswordField passname = new JPasswordField(); Dimension inputSizepass = new Dimension(400, 30); passname.setPreferredSize(inputSizepass); loginFrame.add(passname); JLabel passLabel = new JLabel("登录密码"); loginFrame.add(passLabel); //按钮 JButton btn = new JButton("登陆"); //添加按钮 loginFrame.add(btn); //创建监听器对象 LoginListener loginL = new LoginListener(); //给按钮添加监听器 btn.addActionListener(loginL); //给监听器的输入框属性赋值 loginL.input = nameInput; loginL.pass = passname; loginL.jf = loginFrame; //设置窗体可见 loginFrame.setVisible(true); } public static void main(String[] args) { //创建界面的对象 LoginUI ui = new LoginUI(); //显示界面 ui.showUI(); } }

    3、事件监听类

    import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JPasswordField; import javax.swing.JTextField; public class LoginListener implements ActionListener{ //定义一个输入框 JTextField input; //定义一个密码框 JPasswordField pass; //定义一个窗口 JFrame jf; //按钮点击的时候执行 public void actionPerformed(ActionEvent e) { System.out.println("===="); //获取输入框的内容 String name = input.getText(); //获取密码框的内容 String passname = pass.getText(); //判断 if(name.equals("鱼雁") && passname.equals("123456")) { System.out.println("登陆成功"); JOptionPane.showMessageDialog(null, "登录成功!");//如果登陆成功,就会弹出一个对话框,显示“登陆成功!” jf.setVisible(false);//登陆成功后原来的登录界面消失 }else { System.out.println("登陆失败"); } } }
    最新回复(0)