当前位置: 首页 > news >正文

模拟QQ登录-课后程序(JAVA基础案例教程-黑马程序员编著-第十一章-课后作业)

【案例11-3】 模拟QQ登录

【案例介绍】

1.案例描述

QQ是现实生活中常用的聊天工具,QQ登录界面看似小巧、简单,但其中涉及的内容却很多,对于初学者练习Java Swing工具的使用非常合适。本案例要求使用所学的Java Swing知识,模拟实现一个QQ登录界面。

2.运行结果

 

运行结果

【案例分析】

(1)首先,需要定义一些成员变量,如最小化、关闭、账号、密码、头像等,方便响应的逻辑实现。

(2)由于需要对账号、密码、头像等进行布局,故需要先对这些对象进行实例化。

(3)在对需要用到的文本框、图片等对象进行实例化过后,可以使用对象.setBounds()设置文本框、图片等组件的位置。

(4)接下来,对最小化、关闭、账号、密码、头像等添加监听事件。同时,对窗体也添加窗体拖动监听事件。

(5)最后,为最小化、关闭等编写点击时的执行逻辑。为账号、密码等设置点击、悬停等执行逻辑。

【案例实现】

Login.java

  1. package chapter1103;
  2. import java.awt.Color;
  3.     import java.awt.Cursor;
  4.     import java.awt.Font;
  5.     import java.awt.Point;
  6.     import java.awt.Toolkit;
  7.     import java.awt.event.FocusEvent;
  8.     import java.awt.event.FocusListener;
  9.     import java.awt.event.MouseEvent;
  10.     import java.awt.event.MouseListener;
  11. import java.awt.event.MouseMotionListener;
  12. import javax.swing.ImageIcon;
  13. import javax.swing.JFrame;
  14. import javax.swing.JLabel;
  15. import javax.swing.JOptionPane;
  16. import javax.swing.JPanel;
  17. import javax.swing.JPasswordField;
  18. import javax.swing.JTextField;
  19. public class Login extends JFrame implements MouseListener {
  20.     JLabel bacgrangd, jan,bi,QQ,qq,tu;//gif,最小化,关闭,logo,QQ,头像
  21.     JLabel an1, an2, lie1, lie2;// 暗色块|线
  22.     JTextField user;// 账号
  23.     JPasswordField pass;// 密码
  24.     JPanel bgcolor;//
  25.     JLabel su1, mi1, ku1, ku2, gou1, gou2;// 缩略图
  26.     JLabel text1, text2, text3, text4, text5;//自动登录,记住密码,找回
  27. //密码,注册账号,登录
  28.     static Point origin = new Point();// 变量,用于可拖动窗体
  29.     int a = 0, b = 0, c = 0, d = 0;// 控制线
  30.     int f = 0, g = 0, h = 0, j = 0;// 控制√
  31.     JLabel submit, ma;// 背景
  32.     public Login() {
  33.         //实例化
  34.         bacgrangd = new JLabel(new ImageIcon("images/1.gif"));
  35.         jan = new JLabel(new ImageIcon("images/最小化.png"));
  36.         bi = new JLabel(new ImageIcon("images/关闭.png"));
  37.         QQ = new JLabel(new ImageIcon("imagesqq.png"));
  38.         qq = new JLabel("QQ");
  39.         an1 = new JLabel();
  40.         an2 = new JLabel();// 暗调
  41.         tu = new JLabel(new ImageIcon("images/头像.png"));
  42.         user = new JTextField();
  43.         pass = new JPasswordField();
  44.         su1 = new JLabel(new ImageIcon("images/qq (1).png"));
  45.         mi1 = new JLabel(new ImageIcon("images/密码.png"));
  46.         lie1 = new JLabel(new ImageIcon("images/直线2.png"));
  47.         lie2 = new JLabel(new ImageIcon("images/直线2.png"));
  48.         bgcolor = new JPanel();
  49.         ku1 = new JLabel(new ImageIcon("images/框框.png"));
  50.         ku2 = new JLabel(new ImageIcon("images/框框.png"));
  51.         gou1 = new JLabel(new ImageIcon("images/对勾.png"));
  52.         gou2 = new JLabel(new ImageIcon("images/对勾.png"));
  53.         text1 = new JLabel("自动登录");
  54.         text2 = new JLabel("记住密码");
  55.         text3 = new JLabel("找回密码");
  56.         text4 = new JLabel("注册账号");
  57.         text5 = new JLabel("登录");
  58.         submit = new JLabel();
  59.         ma = new JLabel(new ImageIcon("images/二维码.png"));
  60.         //位置
  61.         bacgrangd.setBounds(-35, -123, 500, 250);
  62.         jan.setBounds(364, 2, 32, 32);
  63.         bi.setBounds(396, 3, 32, 32);
  64.         QQ.setBounds(10, 10, 32, 32);
  65.         qq.setBounds(50, 5, 45, 45);
  66.         an1.setBounds(361, 0, 35, 35);
  67.         an2.setBounds(395, 0, 35, 35);
  68.         tu.setBounds(170, 80, 90, 85);
  69.         user.setBounds(130, 160, 180, 40);
  70.         pass.setBounds(130, 200, 180, 40);
  71.         su1.setBounds(100, 170, 20, 20);
  72.         mi1.setBounds(100, 210, 20, 20);
  73.         lie1.setBounds(100, 190, 240, 10);
  74.         lie2.setBounds(100, 230, 240, 10);
  75.         bgcolor.setBounds(0, 125, 500, 300);
  76.         ku1.setBounds(100, 250, 20, 20);
  77.         ku2.setBounds(190, 250, 20, 20);
  78.         gou1.setBounds(106, 255, 10, 10);
  79.         gou2.setBounds(196, 255, 10, 10);
  80.         text1.setBounds(125, 250, 80, 20);
  81.         text2.setBounds(215, 250, 80, 20);
  82.         text3.setBounds(288, 250, 80, 20);
  83.         text4.setBounds(15, 300, 80, 20);
  84.         text5.setBounds(206, 285, 80, 20);
  85.         submit.setBounds(100, 280, 242, 35);
  86.         ma.setBounds(385, 290, 30, 30);
  87.         //属性
  88.         qq.setFont(new Font("微软雅黑", 1, 25));
  89.         qq.setForeground(Color.white);
  90.         an1.setBackground(new Color(0, 0, 0, 0.3f));
  91.         an2.setBackground(new Color(0, 0, 0, 0.3f));
  92.         bgcolor.setBackground(new Color(255, 255, 255));
  93.         user.setForeground(Color.gray);
  94.         user.setText("QQ号码/手机/邮箱");
  95.         user.setOpaque(false);// 透明背景
  96.         user.setBorder(null);// 去掉边框
  97.          // 框内文字样式
  98.         user.setFont(new Font("微软雅黑", Font.PLAIN, 16));
  99.          // 框内文字样式
  100.         pass.setFont(new Font("微软雅黑", Font.PLAIN, 16));
  101.         pass.setBorder(null);// 去掉边框
  102.         pass.setOpaque(false);// 透明背景
  103.         pass.setForeground(Color.gray);
  104.         pass.setText("密码");
  105.         pass.setEchoChar((char) 0);// 让密码显示出来
  106.         text1.setFont(new Font("微软雅黑", 0, 12));
  107.         text2.setFont(new Font("微软雅黑", 0, 12));
  108.         text3.setFont(new Font("微软雅黑", 0, 12));
  109.         text4.setFont(new Font("微软雅黑", 0, 12));
  110.         text5.setFont(new Font("微软雅黑", 0, 15));
  111.         text1.setForeground(new Color(170, 170, 170));
  112.         text2.setForeground(new Color(170, 170, 170));
  113.         text3.setForeground(new Color(170, 170, 170));
  114.         text4.setForeground(new Color(170, 170, 170));
  115.         text5.setForeground(Color.white);
  116.         gou1.setVisible(false);
  117.         gou2.setVisible(false);
  118.         submit.setBackground(new Color(5, 186, 251));
  119.         submit.setOpaque(true);
  120.      text3.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
  121.      text4.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
  122.         //事件区域
  123.         jan.addMouseListener(this);
  124.         bi.addMouseListener(this);
  125.         user.addMouseListener(this);
  126.         pass.addMouseListener(this);
  127.         text1.addMouseListener(this);
  128.         text2.addMouseListener(this);
  129.         text3.addMouseListener(this);
  130.         text4.addMouseListener(this);
  131.         ku1.addMouseListener(this);
  132.         ku2.addMouseListener(this);
  133.         submit.addMouseListener(this);
  134.         ma.addMouseListener(this);
  135.         this.addMouseListener(this);
  136.          // 窗体拖动事件
  137.  this.addMouseMotionListener(new MouseMotionListener() {
  138.            public void mouseMoved(MouseEvent e) {
  139.         }
  140.     public void mouseDragged(MouseEvent e) {
  141.        Point p = getLocation();
  142.         setLocation(p.x + e.getX()-origin.x, p.y + e.getY()-origin.y);
  143.     }
  144. });
  145. user.addFocusListener(new FocusListener() {
  146.      public void focusLost(FocusEvent e) {// 失去焦点
  147.          su1.setIcon(new javax.swing.ImageIcon("images/qq (1).png"));
  148.          lie1.setIcon(new javax.swing.ImageIcon("images/直线2.png"));
  149.              c = 0;
  150.               // 判断是否为空(为了设置默认提示语)
  151.              if (user.getText().isEmpty()) {
  152.                    user.setForeground(Color.gray);
  153.                    user.setText("QQ号码/手机/邮箱");
  154.                }
  155.            }
  156.         // 得到焦点
  157.        public void focusGained(FocusEvent e) {
  158.          user.setForeground(Color.black);
  159.          lie1.setIcon(new javax.swing.ImageIcon("images/直线3.png"));
  160.                a = 1;
  161.                c = 1;
  162.                b = 0;
  163.           su1.setIcon(new javax.swing.ImageIcon("images/qq(2).png"));
  164.                if (user.getText().equals("QQ号码/手机/邮箱")) {
  165.                    user.setText("");
  166.                } else {
  167.                    user.setText(user.getText());
  168.                    user.selectAll();
  169.                }
  170.            }
  171.         });
  172.         pass.addFocusListener(new FocusListener() {
  173.             // 失去焦点
  174.            public void focusLost(FocusEvent e) {
  175.             // 失去焦点换图片
  176.            lie2.setIcon(new javax.swing.ImageIcon("images/2.png"));
  177.            mi1.setIcon(new javax.swing.ImageIcon("images/密码.png"));
  178.                d = 0;
  179.                if (pass.getText().isEmpty()) {
  180.                    pass.setForeground(Color.gray);
  181.                    pass.setText("密码");
  182.                    pass.setEchoChar((char) 0);// 让密码显示出来
  183.                }
  184.            }
  185.         public void focusGained(FocusEvent e) {// 得到焦点
  186.                mi1.setIcon(new javax.swing.ImageIcon("images/密码"+
  187.                   " (1).png"));
  188.                lie2.setIcon(new javax.swing.ImageIcon("images/直线"+
  189.                   "3.png"));
  190.                b = 1;
  191.                a = 0;
  192.                d = 1;
  193.                pass.setForeground(Color.black);
  194.                pass.setEchoChar('*');// 让用户输入看不见
  195.                if (pass.getText().equals("密码")) {
  196.                    pass.setText("");
  197.                } else {
  198.                    pass.setText(pass.getText());
  199.                }
  200.            }
  201.         });
  202.         this.setLayout(null);// 布局
  203.         this.add(jan);
  204.         this.add(bi);
  205.         this.add(qq);
  206.         this.add(QQ);
  207.         this.add(an1);
  208.         this.add(an2);
  209.         this.add(tu);
  210.         this.add(lie1);
  211.         this.add(lie2);
  212.         this.add(user);
  213.         this.add(pass);
  214.         this.add(su1);
  215.         this.add(mi1);
  216.         this.add(gou1);
  217.         this.add(gou2);
  218.         this.add(ku1);
  219.         this.add(ku2);
  220.         this.add(text1);
  221.         this.add(text2);
  222.         this.add(text3);
  223.         this.add(text4);
  224.         this.add(text5);
  225.         this.add(submit);
  226.         this.add(ma);
  227.         this.add(bgcolor);
  228.         this.add(bacgrangd);
  229.         this.setSize(430, 330);
  230. this.setIconImage(Toolkit.getDefaultToolkit().createImage("images"+
  231.     "/透明照片.png"));// 窗体图标
  232.         this.setLocationRelativeTo(null);// 保持居中
  233.         this.setUndecorated(true);// 去顶部
  234.         this.setFocusable(true);// 面板首先获得焦点
  235.         this.setBackground(new Color(255, 255, 255));// 背景颜色
  236.         this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
  237.         this.setAlwaysOnTop(true);// 最顶层
  238.         this.setVisible(true);// 显示
  239.     }
  240.     public static void main(String[] args) {
  241.         new Login();
  242.     }
  243.     // 点击不恢复
  244.     public void mouseClicked(MouseEvent e) {
  245.     }
  246.     // 点击后
  247.     public void mousePressed(MouseEvent e) {
  248.         if (e.getSource() == jan) {
  249.            setExtendedState(JFrame.ICONIFIED);
  250.         } else if (e.getSource() == this) {
  251.            origin.x = e.getX();
  252.            origin.y = e.getY();
  253.         } else if (e.getSource() == bi) {
  254.            System.exit(0);
  255.         } else if (e.getSource() == ku1 || e.getSource() == text1) {
  256.            if (f == 0) {
  257.                gou1.setVisible(true);
  258.                g = 1;
  259.                f = 1;
  260.            } else if (g == 1) {
  261.                gou1.setVisible(false);
  262.                f = 0;
  263.                g = 0;
  264.            }
  265.         } else if (e.getSource() == ku2 || e.getSource() == text2) {
  266.            if (h == 0) {
  267.                gou2.setVisible(true);
  268.                j = 1;
  269.                h = 1;
  270.            } else if (j == 1) {
  271.                gou2.setVisible(false);
  272.                h = 0;
  273.                j = 0;
  274.             }
  275.       } else if (e.getSource() == submit || e.getSource() == text5) {
  276.            text5.setFont(new Font("微软雅黑", 0, 14));
  277.            dispose();
  278.            String users = user.getText();
  279.            String password = pass.getText();
  280.            if (users.equals("itcast") && password.equals("123")) {
  281.            //new Table();//打开新的主界面如果要关闭登录界面可以写dispose();
  282.            } else {
  283.            JOptionPane.showMessageDialog(null, "用户名:itcast,密"+
  284.                    "码:123,您并未设置打开界面!");
  285.                new Login();
  286.            }
  287.         }
  288.     }
  289.      // 点击时
  290.     public void mouseReleased(MouseEvent e) {
  291.         if (e.getSource() == submit || e.getSource() == text5) {
  292.            text5.setFont(new Font("微软雅黑", 0, 15));
  293.         }
  294.     }
  295.      // 悬停
  296.     public void mouseEntered(MouseEvent e) {
  297.         if (e.getSource() == jan) {
  298.            an1.setOpaque(true);
  299.         } else if (e.getSource() == bi) {
  300.            an2.setOpaque(true);
  301.         } else if (e.getSource() == user) {
  302.            if (a == 0 && c == 0) {
  303.          lie1.setIcon(new javax.swing.ImageIcon("images/直线4.png"));
  304.            }
  305.         } else if (e.getSource() == pass) {
  306.            if (b == 0 && d == 0) {
  307.          lie2.setIcon(new javax.swing.ImageIcon("images/直线4.png"));
  308.            }
  309.         } else if (e.getSource() == text3) {
  310.            text3.setForeground(Color.GRAY);
  311.         } else if (e.getSource() == text4) {
  312.            text4.setForeground(Color.GRAY);
  313.         } else if (e.getSource() == ma) {
  314.           ma.setIcon(new javax.swing.ImageIcon("images/二维码2.png"));
  315.         }
  316.     }
  317.     public void mouseExited(MouseEvent e) {// 悬停后
  318.         if (e.getSource() == jan) {
  319.            an1.setOpaque(false);
  320.         } else if (e.getSource() == bi) {
  321.            an2.setOpaque(false);
  322.         } else if (e.getSource() == user) {
  323.            if (a == 0) {
  324.          lie1.setIcon(new javax.swing.ImageIcon("images/直线2.png"));
  325.            }
  326.         } else if (e.getSource() == pass) {
  327.            if (b == 0) {
  328.          lie2.setIcon(new javax.swing.ImageIcon("images/直线2.png"));
  329.            }
  330.         } else if (e.getSource() == text3) {
  331.            text3.setForeground(new Color(170, 170, 170));
  332.         } else if (e.getSource() == text4) {
  333.            text4.setForeground(new Color(170, 170, 170));
  334.         } else if (e.getSource() == ma) {
  335.            ma.setIcon(new javax.swing.ImageIcon("images/二码.png"));
  336.         }
  337.     }
  338. }

上述代码中,第19-30行代码,定义了一些成员变量,方便响应的逻辑实现。第33-58行代码,对一些图片对象进行实例化。第60-85行,设置图片、文本框等的位置。第87-120行,设置各个文本框,文字等的样式。第122-134行,为各个文本框、按钮等设置监听事件。第136-143行,为窗体拖动事件设置窗体监听。第144-170,为账号文本框设置鼠标聚焦事件。第171-200,为密码文本框设置鼠标聚焦事件。第201-227行,将各个按钮,图片文本框对象放入容器内。第228-238,对界面进行布局。mouseClicked()方法中编写了按钮,文本框,文字等点击不回复的逻辑。mousePressed()方法中编写了按钮,文本框,文字等点击后的逻辑。mouseReleased()方法中编写了按钮,文本框,文字等点击时的逻辑。mouseEntered()方法中编写了按钮,文本框,文字等悬停时的逻辑。mouseExited()方法中编写了按钮,文本框,文字等悬停后的逻辑。

相关文章:

模拟QQ登录-课后程序(JAVA基础案例教程-黑马程序员编著-第十一章-课后作业)

【案例11-3】 模拟QQ登录 【案例介绍】 1.案例描述 QQ是现实生活中常用的聊天工具,QQ登录界面看似小巧、简单,但其中涉及的内容却很多,对于初学者练习Java Swing工具的使用非常合适。本案例要求使用所学的Java Swing知识,模拟实…...

【壹】嵌入式系统硬件基础

随手拍拍💁‍♂️📷 日期: 2023.2.28 地点: 杭州 介绍: 日子像旋转毒马🐎,在脑海里转不停🤯 🌲🌲🌲🌲🌲 往期回顾 🌲🌲&#x1f332…...

当参数调优无法解决kafka消息积压时可以这么做

今天的议题是:如何快速处理kafka的消息积压 通常的做法有以下几种: 增加消费者数增加 topic 的分区数,从而进一步增加消费者数调整消费者参数,如max.poll.records增加硬件资源 常规手段不是本文的讨论重点或者当上面的手段已经使…...

Java线程池源码分析

Java 线程池的使用,是面试必问的。下面我们来从使用到源码整理一下。 1、构造线程池 通过Executors来构造线程池 1、构造一个固定线程数目的线程池,配置的corePoolSize与maximumPoolSize大小相同, 同时使用了一个无界LinkedBlockingQueue存…...

手撕八大排序(下)

目录 交换排序 冒泡排序: 快速排序 Hoare法 挖坑法 前后指针法【了解即可】 优化 再次优化(插入排序) 迭代法 其他排序 归并排序 计数排序 排序总结 结束了上半章四个较为简单的排序,接下来的难度将会大幅度上升&…...

SAP 详细解析SCC4

事务代码:SCC4,选择一个客户端,点击进入,如图: 一、客户端角色 客户控制:客户的角色(生产性,测试,...) 此属性表示 R/3 系统中的客户端角色。其中可能包括…...

java异常分类和finally代码块中return语句的影响

首先看一下java中异常相关类的继承关系: 引用 1、分类 异常可以分为受查异常和非受查异常,Error和RuntimeException及其所有的子类都是非受查异常,其他的是受查异常。 两者的区别主要在: 受检的异常是由编译器(编译…...

【链表OJ题(二)】链表的中间节点

​ ​📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:数据结构 🎯长路漫漫浩浩,万事皆有期待 文章目录链表OJ题(二)1. 链表…...

【强烈建议收藏:MySQL面试必问系列之并发事务锁专题】

一.知识回顾 上节课我们一起学习了MySQL面试必问系列之事务,没有学习的同学可以看一下上一篇文章,肯定对你会有帮助,学习过的同学肯定知道,上节课我们留了一个小尾巴,这个小尾巴是什么呢?就是没有详细展开…...

Linux下使用Makefile实现条件编译

在Linux系统下Makefile和C/C语言都有提供条件选择编译的语法,就是在编译源码的时候,可以选择性地编译指定的代码。这种条件选择编译的使用场合有好多,例如我们开发一个兼容标准版本与定制版本兼容的项目,那么,一些与需…...

java 应用cpu飙升(超过100%)故障排查

前言害。。。昨天刚写完一份关于jvm问题排查相关的博客,今天线上项目就遇到了一个突发问题。现象是用户反映系统非常卡,无法操作。然后登录服务器查看发现cpu 一直100%以上。具体排查步骤:1,首先top命令查看服务器cpu等情况&#…...

光学设计软件Ansys的Lumerical 2023版本下载与安装使用

文章目录前言一、许可管理工具安装二、许可管理器配置三、Lumerical安装四、工具使用配置总结前言 Lumerical是一款功能强大的软件,用于设计和分析从组件到系统阶段的光子学和电磁学。这个版本的Lumerical改进了电子和光子学设计工具,用于复杂光子学&am…...

Java 异常

文章目录1. 异常概述2. JVM 的默认处理方案3. 异常处理之 try...catch4. Throwable 的成员方法5. 编译异常和运行异常的区别6. 异常处理之 throws7. 自定义异常8. throws 和 throw 的区别1. 异常概述 异常就是程序出现了不正常的情况。 ① Error:严重问题&#xff…...

JavaSE学习笔记day17

零、 复习昨日 File: 通过路径代表一个文件或目录 方法: 创建型,查找类,判断类,其他 IO 输入& 输出字节&字符 try-catch代码 一、作业 给定路径删除该文件夹 public static void main(String[] args) {deleteDir(new File("E:\\A"));}// 删除文件夹public s…...

【项目】Vue3+TS 动态路由 面包屑 查询重置 列表

💭💭 ✨:【项目】Vue3TS 动态路由 面包屑 查询重置 列表   💟:东非不开森的主页   💜: 热烈的不是青春,而是我们💜💜   🌸: 如有错误或不足之处&#xff0…...

前脚背完这些接口自动化测试面试题,后脚就进了字节测试岗

1、请结合你熟悉的项目,介绍一下你是怎么做测试的? -首先要自己熟悉项目,熟悉项目的需求、项目组织架构、项目研发接口等 -功能 接口 自动化 性能 是怎么处理的? -第一步: 进行需求分析,需求评审&#…...

termux 安装centos

相关链接 centos官网rootfs制作其他人提供的安装脚本centos镜像列表其他人提供的安装脚本的说明 如果想使用老版本的centos7跟着上面链接5走就行 如果想用新系统比如centos9 stream,就跟我来 Q:为什么要装新系统? A:旧系统太多软件已过时,升级费时费…...

从菜鸟程序员到高级架构师,竟然是因为这个字final

final实现原理 简介 final关键字,实际的含义就一句话,不可改变。什么是不可改变?就是初始化完成之后就不能再做任何的修改,修饰成员变量的时候,成员变量变成一个常数;修饰方法的时候,方法不允…...

【vulhub漏洞复现】CVE-2018-2894 Weblogic任意文件上传漏洞

一、漏洞详情影响版本weblogic 10.3.6.0、weblogic 12.1.3.0、weblogic 12.2.1.2、weblogic 12.2.1.3WebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应…...

函数栈帧详解

写在前面 这个模块临近C语言的边界,学起来需要一定的时间,不过当我们知道这些知识后,在C语言函数这块我们看到的不仅仅是表象了,可以真正了解函数是怎么调用的。不过我的能力有限,下面的的知识若是不当,还…...

Spring 事务(编程式事务、声明式事务@Transactional、事务隔离级别、事务传播机制)

文章目录1. 事务的定义2. Spring 中事务的实现2.1 MySQL 中使用事务2.2 Spring 中编程式事务的实现2.3 Spring 中声明式事务2.3.1 声明式事务的实现 Transactional2.3.2 Transactional 作用域2.3.3Transactional 参数设置2.3.4 Transactional 异常情况2.3.5 Transactional 工作…...

车载技术——Window Display之surface的绘制过程与原理

一、Surface 概述 OpenGL ES/Skia定义了一组绘制接口的规范,为什么能够跨平台? 本质上需要与对应平台上的本地窗口建立连接。也就是说OpenGL ES负责输入了绘制的命令,但是需要一个 “画布” 来承载输出结果,最终展示到屏幕。这个…...

2023年全国最新工会考试精选真题及答案10

百分百题库提供工会考试试题、工会考试预测题、工会考试真题、工会证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 51.()是企业工会的权力机关,每年召开一至两次会议。 A.会员大会 B.会…...

pytorch-复现经典深度学习模型-LeNet5

Neural Networks 使用torch.nn包来构建神经网络。nn包依赖autograd包来定义模型并求导。 一个nn.Module包含各个层和一个forward(input)方法,该方法返回output。 一个简单的前馈神经网络,它接受一个输入,然后一层接着一层地传递,…...

【C++】类和对象(上)

文章目录对象的介绍类的介绍类的两种定义方式类的访问限定符及封装访问限定符封装类的作用域类的实例化类的对象模型对象的介绍 C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题;   C是基于面向…...

工作中责任链模式用法及其使用场景?

前言 笔者是金融保险行业,有这么一种场景,业务员录完单后提交核保,这时候系统会对保单数据进行校验,如不允许手续费超限校验,客户真实性校验、费率限额校验等等,当校验一多时,维护起来特别麻烦…...

三八女神节有哪些数码好物?2023年三八女神节数码好物清单

2023年的三八女神节就快到了,大家还在烦恼,不知道有哪些数码好物?在此,我来给大家分享几款三八女神节实用性强的数码好物,一起来看看吧。 一、蓝牙耳机:南卡小音舱 参考价:239 推荐理由&…...

FairGuard-Windows加固工具版本更新日志

FairGuard-Windows加固工具1.2.2版本更新日志: ■ 增加Unity Resources资源加密的支持; ■ 增加单独Assetbundle资源加密,并同时支持压缩包和文件夹作为输入的方式; ■ 增加对游戏原文件夹加固的支持; Windows加固方案介绍 FairGuard专为游戏量身定…...

基于RT-Thread完整版搭建的极简Bootloader

项目背景Agile Upgrade: 用于快速构建 bootloader 的中间件。example 文件夹提供 PC 上的示例特性适配 RT-Thread 官方固件打包工具 (图形化工具及命令行工具)使用纯 C 开发,不涉及任何硬件接口,可在任何形式的硬件上直接使用加密、压缩支持如下&#xf…...

3.flinkDateStreamAPI介绍env与source

执行环境 Flink可以在不同的环境上下文中运行.可以本地集成开发环境中运行也可以提交到远程集群环境运行. 不同的运行环境对应的flink的运行过程不同,需要首先获取flink的运行环境,才能将具体的job调度到不同的TaskManager 在flink中可以通过StreamExecutionEnvironment类获取…...

东莞新闻营销/宁波seo网络推广公司排名

一、块元素 block element 块元素的特性 独霸一行,总是在新行上开始宽度缺省是它父级元素的100%,除非设定一个宽度高度、行高、外边距、内边距都可以设置可以容纳其他内联元素或者其他块元素 常见的块元素 address – 地址blockquote – 块引用cente…...

资料网站怎么做/代推广app下载

2019独角兽企业重金招聘Python工程师标准>>> 伟大的作家XXX曾经说过:1000个人便有1000个HDFS。 转载于:https://my.oschina.net/qiangzigege/blog/360239...

广东省城乡住房建设厅网站首页/月饼营销软文

1、首先进入组件服务,查看组件服务/计算机/我的电脑/COM应用程序,结果报错“COM 无法与 Microsoft 分布式事务协调程序交谈”,无法查看里面的对象。 2、进入事件查看器,发现msdtc服务没有正常启动。 3、删除注册表中的键&#xff…...

开发网是什么意思/优化设计数学

轮询轮询方式是Nginx负载默认的方式,顾名思义,所有请求都按照时间顺序分配到不同的服务上,如果服务Down掉,可以自动剔除,如下配置后轮训10001服务和10002服务。upstream dalaoyang-server {server localhost:10001…...

互联网站建设维护有关岗位/360收录提交入口网址

BEL (7)BELl,响铃。在 ASCII 编码中,BEL 是个比较有意思的东西。BEL 用一个可以听得见的声音来吸引人们的注意,既可以用于计算机,也可以用于周边设备(比如打印机)。注意,BEL 不是声卡或者喇叭发出的声音,而…...

做旅游网站的好处/52种新颖的促销方式

所谓插入排序,就是检查第i个数字,若比它的左边的数字小,则进行交换,一直持续这个动作,直到它的左边的数字比它还要小,则停止。 #coding:utf-8def insertion_sort(nums): for i in range(1,len(nums)): …...