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

C#软键盘设计字母数字按键处理相关事件函数

应用场景:便携式设备和检测设备等小型设备经常使用触摸屏来代替键盘鼠标的使用,因此在查询和输入界面的文本或者数字输入控件中使用软件盘来代替真正键盘的输入。

软键盘界面:软键盘界面实质上就是一个普通的窗体上面摆放了很多图片按钮,拖拉对应的文本、按钮等控件到设计界面即可、按键的命名遵循简单好记的规则。

字母键盘界面:26个字母按键的命名从btna-btnz。

字母按键处理代码如下:

            #region 字母按钮事件this.btna.Click += new System.EventHandler(this.btna_Click);this.btnb.Click += new System.EventHandler(this.btnb_Click);this.btnc.Click += new System.EventHandler(this.btnc_Click);this.btnd.Click += new System.EventHandler(this.btnd_Click);this.btne.Click += new System.EventHandler(this.btne_Click);this.btnf.Click += new System.EventHandler(this.btnf_Click);this.btng.Click += new System.EventHandler(this.btng_Click);this.btnh.Click += new System.EventHandler(this.btnh_Click);this.btni.Click += new System.EventHandler(this.btni_Click);this.btnj.Click += new System.EventHandler(this.btnj_Click);this.btnk.Click += new System.EventHandler(this.btnk_Click);this.btnl.Click += new System.EventHandler(this.btnl_Click);this.btnm.Click += new System.EventHandler(this.btnm_Click);this.btnn.Click += new System.EventHandler(this.btnn_Click);this.btno.Click += new System.EventHandler(this.btno_Click);this.btnp.Click += new System.EventHandler(this.btnp_Click);this.btnq.Click += new System.EventHandler(this.btnq_Click);this.btnr.Click += new System.EventHandler(this.btnr_Click);this.btns.Click += new System.EventHandler(this.btns_Click);this.btnt.Click += new System.EventHandler(this.btnt_Click);this.btnu.Click += new System.EventHandler(this.btnu_Click);this.btnv.Click += new System.EventHandler(this.btnv_Click);this.btnw.Click += new System.EventHandler(this.btnw_Click);this.btnx.Click += new System.EventHandler(this.btnx_Click);this.btny.Click += new System.EventHandler(this.btny_Click);this.btnz.Click += new System.EventHandler(this.btnz_Click);#endregion

对应的字母按钮点击事件处理代码

#region 单个字符按钮点击事件#region 第一排字母按钮点击事件private void btnq_Click(object sender, EventArgs e){if (!(Caps_Lock ^ ShiftFlag))txtResult.Text += "q";elsetxtResult.Text += "Q"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btnw_Click(object sender, EventArgs e){if (!(Caps_Lock ^ ShiftFlag))txtResult.Text += "w";elsetxtResult.Text += "W"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btne_Click(object sender, EventArgs e){if (!(Caps_Lock ^ ShiftFlag))txtResult.Text += "e";elsetxtResult.Text += "E"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btnr_Click(object sender, EventArgs e){if (!(Caps_Lock ^ ShiftFlag))txtResult.Text += "r";elsetxtResult.Text += "R"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btnt_Click(object sender, EventArgs e){if (!(Caps_Lock ^ ShiftFlag))txtResult.Text += "t";elsetxtResult.Text += "T"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btny_Click(object sender, EventArgs e){if (!(Caps_Lock ^ ShiftFlag))txtResult.Text += "y";elsetxtResult.Text += "Y"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btnu_Click(object sender, EventArgs e){if (!(Caps_Lock ^ ShiftFlag))txtResult.Text += "u";elsetxtResult.Text += "U"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btni_Click(object sender, EventArgs e){if (!(Caps_Lock ^ ShiftFlag))txtResult.Text += "i";elsetxtResult.Text += "I"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btno_Click(object sender, EventArgs e){if (!(Caps_Lock ^ ShiftFlag))txtResult.Text += "o";elsetxtResult.Text += "O"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btnp_Click(object sender, EventArgs e){if (!(Caps_Lock ^ ShiftFlag))txtResult.Text += "p";elsetxtResult.Text += "P"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}#endregion#region 第二排字母按钮点击事件private void btna_Click(object sender, EventArgs e){if (InputType == "English"){txtResult.Text += this.btna.Text;}else if (InputType == "Char"){txtResult.Text += this.btna.Text;}else if (InputType == "Chinese"){lblPinyin.Text += this.btna.Text;}//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btns_Click(object sender, EventArgs e){if (!(Caps_Lock ^ ShiftFlag))txtResult.Text += "s";elsetxtResult.Text += "S"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btnd_Click(object sender, EventArgs e){if (!(Caps_Lock ^ ShiftFlag))txtResult.Text += "d";elsetxtResult.Text += "D"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btnf_Click(object sender, EventArgs e){if (!(Caps_Lock ^ ShiftFlag))txtResult.Text += "f";elsetxtResult.Text += "F"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btng_Click(object sender, EventArgs e){if (!(Caps_Lock ^ ShiftFlag))txtResult.Text += "g";elsetxtResult.Text += "G"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btnh_Click(object sender, EventArgs e){if (!(Caps_Lock ^ ShiftFlag))txtResult.Text += "h";elsetxtResult.Text += "H"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btnj_Click(object sender, EventArgs e){if (!(Caps_Lock ^ ShiftFlag))txtResult.Text += "j";elsetxtResult.Text += "J"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btnk_Click(object sender, EventArgs e){if (!(Caps_Lock ^ ShiftFlag))txtResult.Text += "k";elsetxtResult.Text += "K"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btnl_Click(object sender, EventArgs e){if (!(Caps_Lock ^ ShiftFlag))txtResult.Text += "l";elsetxtResult.Text += "L"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}#endregion#region 第三排字母按钮点击事件private void btnz_Click(object sender, EventArgs e){if (!(Caps_Lock ^ ShiftFlag))txtResult.Text += "z";elsetxtResult.Text += "Z"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btnx_Click(object sender, EventArgs e){if (!(Caps_Lock ^ ShiftFlag))txtResult.Text += "x";elsetxtResult.Text += "X"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btnc_Click(object sender, EventArgs e){if (!(Caps_Lock ^ ShiftFlag))txtResult.Text += "c";elsetxtResult.Text += "C"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btnv_Click(object sender, EventArgs e){if (!(Caps_Lock ^ ShiftFlag))txtResult.Text += "v";elsetxtResult.Text += "V"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btnb_Click(object sender, EventArgs e){if (!(Caps_Lock ^ ShiftFlag))txtResult.Text += "b";elsetxtResult.Text += "B"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btnn_Click(object sender, EventArgs e){if (!(Caps_Lock ^ ShiftFlag))txtResult.Text += "n";elsetxtResult.Text += "N"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btnm_Click(object sender, EventArgs e){if (!(Caps_Lock ^ ShiftFlag))txtResult.Text += "m";elsetxtResult.Text += "M"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}#endregion#endregion

 数字键盘界面:0-9数字按键命名分别是btn0-btn9

数字按钮点击事件绑定

#region 数字按钮点击事件this.btn0.Click += new System.EventHandler(this.btn0_Click);this.btn1.Click += new System.EventHandler(this.btn1_Click);this.btn2.Click += new System.EventHandler(this.btn2_Click);this.btn3.Click += new System.EventHandler(this.btn3_Click);this.btn4.Click += new System.EventHandler(this.btn4_Click);this.btn5.Click += new System.EventHandler(this.btn5_Click);this.btn6.Click += new System.EventHandler(this.btn6_Click);this.btn7.Click += new System.EventHandler(this.btn7_Click);this.btn8.Click += new System.EventHandler(this.btn8_Click);this.btn9.Click += new System.EventHandler(this.btn9_Click);#endregion

数字按钮点击事件代码

#region 数字键盘点击事件private void btn0_Click(object sender, EventArgs e){txtResult.Text += "0";txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btn1_Click(object sender, EventArgs e){txtResult.Text += "1";txtResult.Focus();//设置光标的位置到文本尾txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处txtResult.ScrollToCaret();}private void btn2_Click(object sender, EventArgs e){txtResult.Text += "2";txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btn3_Click(object sender, EventArgs e){txtResult.Text += "3"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btn4_Click(object sender, EventArgs e){txtResult.Text += "4"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btn5_Click(object sender, EventArgs e){txtResult.Text += "5"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btn6_Click(object sender, EventArgs e){txtResult.Text += "6"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btn7_Click(object sender, EventArgs e){txtResult.Text += "7"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btn8_Click(object sender, EventArgs e){txtResult.Text += "8"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btn9_Click(object sender, EventArgs e){txtResult.Text += "9"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}#endregion

相关文章:

C#软键盘设计字母数字按键处理相关事件函数

应用场景:便携式设备和检测设备等小型设备经常使用触摸屏来代替键盘鼠标的使用,因此在查询和输入界面的文本或者数字输入控件中使用软件盘来代替真正键盘的输入。 软键盘界面:软键盘界面实质上就是一个普通的窗体上面摆放了很多图片按钮&…...

C++笔记---set和map

1. 序列式容器与关联式容器 前面我们已经接触过STL中的部分容器如:string、vector、list、deque、array、forward_list等,这些容器统称为序列式容器,因为逻辑结构为线性序列的数据结构,两个位置存储的值之间一般没有紧密的关联关…...

HTTP 教程

HTTP/HTTPS 简介 HTTP(Hypertext Transfer Protocol,超文本传输协议)和 HTTPS(Hypertext Transfer Protocol Secure,超文本传输安全协议)是用于在网络中传输信息的两种主要协议。它们定义了客户端和服务器…...

低代码革命:加速云原生时代的端到端产品创新

随着云计算技术的飞速发展,云原生成为了企业数字化转型的重要方向。云原生技术通过容器化、微服务、持续集成/持续部署(CI/CD)等实践,帮助企业构建和运行可扩展的应用程序。然而,云原生技术的复杂性也给开发团队带来了…...

力扣 92.反转链表Ⅱ

力扣《反转链表》系列文章目录 刷题次序,由易到难,一次刷通!!! 题目题解206. 反转链表反转链表的全部 题解192. 反转链表 II反转链表的指定段24. 两两交换链表中的节点两个一组反转链表 题解225. K 个一组翻转链表K …...

2024年最新版TypeScript学习笔记——泛型、接口、枚举、自定义类型等知识点

今天带来的是来自尚硅谷禹神2024年8月最新的TS课程的学习笔记,不得不说禹神讲的是真的超级棒! 文章目录 TS入门JS中的困扰静态类型检查编译TS命令行编译自动化编译 类型检查变量和函数类型检查字面量类型检查 类型推断类型声明声明对象类型声明函数类型…...

java项目之城镇保障性住房管理系统(源码+文档)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的城镇保障性住房管理系统。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 城镇保障性住房管…...

无人机之航线规划篇

无人机的航线规划是一个复杂但至关重要的过程,它确保了无人机在飞行过程中的安全、高效以及任务的顺利完成。以下是对无人机航线规划的详细解析: 一、定义与目的 无人机航线规划是指依据无人机任务分配,规划出符合安全条件的飞行航线。这一过…...

828 华为云征文|华为 Flexus 云服务器搭建 PicGo 图床

在这个充满非凡意义的日子里,我怀揣着满心的热忱与憧憬,毅然决然地踏上了借助华为 Flexus 云服务器搭建 PicGo 图床的精彩征程。这段旅程,注定充满了无数的挑战与意外之喜,宛如在广袤无垠的数字海洋中勇敢地探寻那神秘而珍贵的宝藏…...

Zabbix 6.4添加中文语言

/usr/share/zabbix/include/locales .inc .phplocale -agrep “zh_CN" yum install langpacks-zh_CN.noarch y y y...

【退役之再次线上部署】Spring Boot + VUE + Nginx + MySQL

这篇博客写在凌晨 4 点 20 分,这个时候我刚线上部署完成 web 项目,自己写的全栈项目 这个点儿,也睡不着了,索性就写篇博客记录一下 一、踩坑实录 这个是 最重要的,所以写在前面 Nginx 配置文件 location location /a…...

Qanything 2 0源码解析系列1:新建知识库

Qanything 2.0源码解析系列1:新建知识库 文章转载自:https://www.feifeixu.top/article/19c76951-5881-4181-bb63-4188b28d3917 😀 前言: qanything所有接口都定义在sanic_api.py中 接口函数定义在同级目录下的handler.py中 新建…...

Redis-01 入门和十大数据类型

Redis支持两种持久化方式:RDB持久化和AOF持久化。 1.RDB持久化是将Redis的数据以快照的形式保存在磁盘上,可以手动触发或通过配置文件设置定时触发。RDB保存的是Redis在某个时间点上的数据快照,可以通过恢复RDB文件来恢复数据。 2.AOF持久化…...

IT行业的现状与未来发展趋势

IT行业的现状与未来发展趋势 近年来,随着科技的迅猛发展,IT行业无疑已经成为全球经济增长的重要驱动力之一。无论是人工智能、大数据,还是云计算和区块链技术,IT行业的创新始终在不断推动着各个领域的变革。 人工智能的广泛应用…...

828华为云征文 | 云服务器Flexus X实例,Docker集成搭建Jenkins CI/CD平台

828华为云征文 | 云服务器Flexus X实例,Docker集成搭建Jenkins CI/CD平台 Jenkins 是一个开源的自动化服务器,用于持续集成(CI)和持续交付(CD)软件项目。它允许开发人员在软件开发过程中自动化各种任务&…...

今日 leetCode 15.三数之和

15. 三数之和 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元…...

Games101笔记-二维Transform变换(二)

1、什么是Transform Transform就是通过一个矩阵,进行缩放、旋转、平移等变换 2、缩放、旋转、切变、平移等基础变换 缩放变换: 反射变换: 切变: 绕原点旋转: 以上都是线性变换: 平移变换&#xf…...

【洛谷】AT_abc371_c [ABC371C] Make Isomorphic 的题解

【洛谷】AT_abc371_c [ABC371C] Make Isomorphic 的题解 洛谷传送门 AT传送门 题解 抽象题目,抽象翻译,可能是我太菜了,根本没看懂题目,后面是听大佬讲题才发现,这不就是一题全排列暴力题吗。谔谔,真的…...

全国职业院校技能大赛(大数据赛项)-平台搭建Spark、Scala笔记

Spark作为一个开源的分布式计算框架拥有高效的数据处理能力、丰富的生态系统、多语言支持以及广泛的行业应用。Scala是一种静态类型的编程语言,它结合了面向对象编程和函数式编程的特性,被誉为通用的“大数据语言”。而二者的结合更能迸发出新奇的化学反…...

【Java】JVM基本组成

一、JDK、JRE、JVM JDK:全称 “Java Development Kit” Java 开发工具包,提供 javac编译器、jheap、jconsole 等监控工具; JRE:全称 “Java Runtime Environment” Java 运行环境,提供 class Library 核心类库JVM; …...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

pam_env.so模块配置解析

在PAM&#xff08;Pluggable Authentication Modules&#xff09;配置中&#xff0c; /etc/pam.d/su 文件相关配置含义如下&#xff1a; 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块&#xff0c;负责验证用户身份&am…...

渲染学进阶内容——模型

最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命

在华东塑料包装行业面临限塑令深度调整的背景下&#xff0c;江苏艾立泰以一场跨国资源接力的创新实践&#xff0c;重新定义了绿色供应链的边界。 跨国回收网络&#xff1a;废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点&#xff0c;将海外废弃包装箱通过标准…...

用机器学习破解新能源领域的“弃风”难题

音乐发烧友深有体会&#xff0c;玩音乐的本质就是玩电网。火电声音偏暖&#xff0c;水电偏冷&#xff0c;风电偏空旷。至于太阳能发的电&#xff0c;则略显朦胧和单薄。 不知你是否有感觉&#xff0c;近两年家里的音响声音越来越冷&#xff0c;听起来越来越单薄&#xff1f; —…...

在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案

这个问题我看其他博主也写了&#xff0c;要么要会员、要么写的乱七八糟。这里我整理一下&#xff0c;把问题说清楚并且给出代码&#xff0c;拿去用就行&#xff0c;照着葫芦画瓢。 问题 在继承QWebEngineView后&#xff0c;重写mousePressEvent或event函数无法捕获鼠标按下事…...

人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent

安全大模型训练计划&#xff1a;基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标&#xff1a;为安全大模型创建高质量、去偏、符合伦理的训练数据集&#xff0c;涵盖安全相关任务&#xff08;如有害内容检测、隐私保护、道德推理等&#xff09;。 1.1 数据收集 描…...

xmind转换为markdown

文章目录 解锁思维导图新姿势&#xff1a;将XMind转为结构化Markdown 一、认识Xmind结构二、核心转换流程详解1.解压XMind文件&#xff08;ZIP处理&#xff09;2.解析JSON数据结构3&#xff1a;递归转换树形结构4&#xff1a;Markdown层级生成逻辑 三、完整代码 解锁思维导图新…...

JDK 17 序列化是怎么回事

如何序列化&#xff1f;其实很简单&#xff0c;就是根据每个类型&#xff0c;用工厂类调用。逐个完成。 没什么漂亮的代码&#xff0c;只有有效、稳定的代码。 代码中调用toJson toJson 代码 mapper.writeValueAsString ObjectMapper DefaultSerializerProvider 一堆实…...