- el-menu无限递归组件完美版本
Mr.Meng_95
项目vue
el-menu无限递归组件完美版本备注:修复菜单和子菜单高亮问题,及刷新后被点击子菜单依旧打开的bug效果代码index.vue(递归组件)importMenuSunfrom'../components/menutree.vue'exportdefault{components:{MenuSun},data(){return{menuList:[{name:'一组',id:'1',children
- 通讯录模块代码
fang6zhi
python
#1、封装一个menu函数,专门用于打印选择界面菜单defmenu():print('-'*40)print('通讯录管理系统V1.0')print('1、添加学员信息')print('2、删除学员信息')print('3、修改学员信息')print('4、查询学员信息')print('5、遍历所有学员信息')print('6、退出系统')print('-'*40)#6、定义一个全局变量info=
- [c++简单小游戏]东搞西搞第二弹——谷歌chrome小恐龙升级版(啊哈)
zlt_cnyali
东搞西搞区c++游戏
上效果图~~~灵感来源:谷歌chrome的小恐龙游戏(就是每次断网都会弹出来的那个)那个#是墙。。。#include#include#include#include#defineN80#defineup72#defineleft75#defineright77#definedown80voidrun();voidyn();voidprint(int[][N]);voidmenu();intscr[
- 【Vue入门实践】Element-UI 树形组件el-tree的组件封装 =>实现组织机构树Tree => 使用vue-content-menu定制可编辑树结构editableTree
小白Rachel
前端工作日记随笔Vue项目实战elementUI组件优化vue.jsuielementuiel-tree组织机构树
文章资源连接(如果需要付费,联系我修改即可):https://download.csdn.net/download/Sabrina_cc/87607289好吧吐槽一下,公司决定之后的技术栈都是vue了,我又从React转战回来了。干巴爹好的生活方式,是和一群志同道合的人,一起奔跑在理想的路上!回头有一路的故事,低头有坚定的脚步,抬头有清晰的远方。首先了解Element-UI中定义的基础Tree树组
- GOCI-L2可以指定变量和日期批量下载
一休哥※
数据集下载windows数据库数据集GOCI
下载数据集运行批量下载脚本按需修改代码注意修改时间修改需要的变量zip下载结果实现批量下载GOCI-II数据集标记 GOCI-II数据集下载脚本运行批量下载脚本数据集网站:https://kosc.kiost.ac.kr/gociSearch/list.nm?menuCd=11&lang=ko&url=gociSearch&dirString=/COMS/GOCI/L2/有批量下载数据集的需求,
- QT 笔记
繁缕怀夕
QT笔记
本文详述了QT的基础应用,其中包括基础控件应用、多线程等工具类使用、以及显示2D、3D图像等功能,适用于C++和计算机视觉领域的开发者。1、基础控件QLineEditQComboBoxQMenuQToolBar2、基础功能2.1、多线程线程QThread2.2、多语言静态显示动态切换3、QChart4、QGraphicsView5、PCL之VTK
- python 菜单调用_Python Tkinter Menu菜单(窗口菜单和右键菜单)使用详解
weixin_39997311
python菜单调用
Tkinter为菜单提供了Menu类,该类既可代表菜单条,也可代表菜单,还可代表上下文菜单(右键菜单)。简单来说,Menu类就可以搞定所有菜单相关内容。程序可调用Menu的构造方法来创建菜单,在创建菜单之后可通过如下方法添加菜单项:add_command():添加菜单项。add_checkbutton():添加复选框菜单项。add_radiobutton():添加单选钮菜单项。add_separa
- python菜单栏_(7)python tkinter-菜单栏
weixin_39625172
python菜单栏
importtkinterimporttkinter.messageboxdefbut():tkinter.Toplevel()root=tkinter.Tk()#root.title('GUI')#标题root.geometry('800x600')#窗体大小root.resizable(False,False)#固定窗体f=tkinter.Menu(root)#创建根菜单root['menu'
- Python Tkinter Menu
ccczqh
python
PythonTkinterMenu本人想开发一个简易的搜图GUI,基于此,选择用Tkinter模块开发。需要开发出菜单栏1fromTkinterimport*234root=Tk()5root.title("搜图助手")6root.geometry("500x500+600+200")7help=tkMessageBox.showinfo("欢迎","欢迎使用搜图助手!\nByJohnson")8
- Python tkinter Menu菜单组件详解
白客小李666
意志让我在编程领域上取得的胜利python开发语言
好久没有更新了,今天我来领大家熟悉一下Menu组件1.认识、了解Menu什么是Menumenu组件是tkinter中的菜单组件,通过该组件,开发者可以为窗口设计菜单和工具栏等。(ttk还提供了treeview树形菜单,python遍历目录的两种方法_python遍历目录-CSDN博客,这篇博客提到过)Menu的好处有人会问,为什么要用Menu呢?如果我们要模拟右键菜单可以看到,菜单中有很多按钮。可
- 制作动态菜单
大磊程序员(“hello world”)
Java后端javascript开发语言ecmascript
动态菜单的说明什么叫做动态菜单?动态菜单就是根据用户属于不同的角色,每个角色还有不同的菜单,左侧菜单栏会有不同的显示前端加载流程menu.js修改/src/api/menu.js中的请求地址,如下所示://获取菜单exportconstGetMenus=params=>{returnrequest({url:'/admin/system/index/menus',method:'get',para
- Flutter 封装AppBar
Spy97
Flutterflutter
在微信中,有4项:聊天、联系人、发现、我的其中前3项的appbar相同“我的”一项没有appbar,所以要对其进行封装import'package:flutter/material.dart';_popupMenuItem(Stringtitle,IconDataicon){returnPopupMenuItem(child:Row(children:[Padding(child:Icon(ico
- c语言小项目——通讯录实现
xxGUA_
学习c语言学习
一、功能的介绍实现通讯录中联系人信息的增、删、查、改。二、程序模块的介绍1.测试文件test.c初始化通讯录—>联系人的增、删、查、改—>每次操作之后都打印通讯录。#include"contact.h"intmain(){intinput=0;structcontactcon;//通讯录结构体变量menu();//菜单initcontact(&con);//初始化通讯录while(1){print
- C语言的小项目-简易计算器
王磊鑫
c语言开发语言
我们想使用C语言开发一个简易的计算器,需要什么呢?是不是首先需要一个菜单呢?看,这就是一个简单的菜单啦!voidmenu(){printf(*******************计算器***************************);printf("*******1.加(Add)*****2.减(Sub)**************\n");printf("*******3.乘(Div)*
- C语言学习记录——通讯录(静态内存)
qiyi.sky
C语言学习c语言
分模块contact.h类型定义,函数声明。contact.c函数的实现test.c测试通讯录的模块test.c#include"contact.h"voidmenu(){printf("\n");printf("1.add2.del\n");printf("3.search4.modify\n");printf("5.sort6.print\n");printf("0.exit\n");prin
- java移动业务大厅案例_基于Java的SOSO移动大厅项目(功能全部实现了)
都灵Turin
java移动业务大厅案例
【实例简介】基于Java的SOSO移动大厅项目功能全部实现了可以下载去看看【实例截图】【核心代码】SOSO移动大厅项目└──SosoDemo├──bin│├──business││└──Menu.class│├──entity││├──CallService.class││├──ConsumInfo.class││├──MobileCard.class││├──NetPackage.class││
- 如何在WordPress中轻松创建Mega菜单
Web极客码
javascript前端htmlWordPress
在建立一个内容丰富的网站时,传统的下拉菜单往往难以满足复杂网站的需求。Mega菜单,一种能够显示多列或大块内容的菜单,可以有效提升用户体验,让网站导航更直观,内容更有条理,特别适合那些产品繁多的电商网站或内容丰富的博客。本文将向你介绍如何通过插件和手动代码两种方式在WordPress中创建Mega菜单,并为你推荐一些优秀的插件,如MaxMegaMenu、QuadMenu和JetMenu。为什么要使
- Python实现学生管理系统
才尽散人
python
student=[]#存储学生信息defmenu():print('欢迎来到学生管理系统')print('1.添加学生信息')print('2.删除学生信息')print('3.修改学生信息')print('4.查询学生信息')print('5.显示学生信息')print('0.退出系统')#打印菜单defadd():id=input('请输入要添加的学生的学号:')name=input('请输入
- unity转微信小游戏:自定义分享标题和分享图片
会潜水的小火龙
unity转微信小游戏unity微信小程序
unity转微信小游戏:自定义分享标题和分享图片代码使用方法代码//获取微信小程序分享参数更改为自己的分享标题和分享图片publicvoidOnShareAppMessage(boolisListen=true,stringimageUrl="",stringtitle="",stringquery=""){if(isListen){WX.ShowShareMenu(newShowShareMen
- 费希尔(FISHER)阀门定位器DVC6000调试步骤
冶金仪表圈
自动化调节阀调节阀改造
DVC6000调试步骤:打开275/375手操器从主菜单(MainMenu)选择Hart应用(HARTApplication)从Online找到该定位器。依次进入Setup&Diag——DetailedSetup——Mode——InstumentMode(或者按手操器上快捷键直接进入)——警告!inservice模式被送到仪表当中时阀门也许会动(WARNING!Valvemaymovewhenin
- 25.01.15 SpringSecurity 授权
2401_87910368
笔记
//准备工作在登录通过username查询用户时,把用户对应的角色即角色对应的菜单查出,//根据用户的角色rolerid来查询对应的菜单publicinterfaceAdminMenuDaoextendsBaseMapper{@Select("SELECTm.*FROMadmin_menum,rel_role_menurelWHEREm.mid=rel.midANDrel.rid=#{id}")L
- python enum
张珩四号
python-enumPythonEnum
Pythonenum:枚举1.枚举定义2.枚举取值版本:python3.6.41.枚举定义#枚举的定义fromenumimportEnumMonth=Enum("Month",('Jan','Feb','Mar'))fromenumimportEnum,unique@uniqueclassWeekday(Enum):Sun=0Mon=1Tues=2定义枚举时,都要先导入enum。两者方法获得的都是
- 猜数字游戏#C语言
Eternallassmpsit
游戏c语言算法
#include"stdio.h"#include"stdlib.h"#include"time.h"voidmenu(){printf("************************\n");//菜单printf("*****1.play*****\n");printf("*****0.exit*****\n");printf("************************\n");}/
- vue中路由点击两次报错问题,加个判断
比较好记
vue前端
methods:{//点击菜单路由跳转clickMenu(item){//当页面路由与点击后要跳转的路由不一致才允许跳转,且不是重定向情况if(this.$route.path!==item.path&&!(this.$route.path==='/home'&&(item.path==='/'))){this.$router.push(item.path)}}},
- 2.2.6 通知类控件 Toast、Menu
常思行
本文例程下载:WillFlow_Toast、WillFlowMenu一、什么是Toast?Toast也被叫做吐司,是Android系统提供的一种非常好的提醒方式,在程序中可以使用它将一些短小的信息通知给用户,它有如下两个特点:Toast是没有焦点的Toast显示的时间有限过一定的时间就会自动消失所以一般来讲Toast的使用并不会影响我们的正常操作,并且它通常不会占用太大的屏幕空间,有着良好的用户体
- Pyqt5实现listwidget自定义右键菜单
Saudade957
pyqt5前端前端python编程语言
Pyqt5实现listwidget自定义右键菜单基于网上搜到的各种教程失败以后(ps:可能有的可以成功,但是我都没成功),组合了一下一些代码最终成功实现相关内容。首先在ui文件生成的py文件中添加self.listWidget.setContextMenuPolicy(Qt.CustomContextMenu)self.listWidget.customContextMenuRequested.c
- 一招改掉孩子磨蹭的坏习惯
路姐说
https://shop43404796.youzan.com/wscvis/knowledge/index?p=contentshow&alias=2xctkvk0tdnk4&kdt_id=43212628&reft=1572314576745_1572320684212&spm=f.80650183_uc.43212628_fake43212628&sf=wx_menu#/contentsho
- 一文说透 Android 应用架构 MVC、MVP、MVVM 和 组件化,Android基础入门教程
Java后时代
2024年程序员学习android架构mvc
然后,就是我们的View层的代码,同样,我对代码做了删减:@Route(path=BaseConstants.EYEPETIZER_MENU)publicclassHomeActivityextendsCommonActivityimplementsHomeContract.IView{//实例化PresenterprivateHomeContract.IPresenterpresenter;{p
- 物联网之ESP32配网方式、蓝牙、WiFi
智码帮MJ682517
Web前端嵌入式硬件物联网嵌入式硬件物联网web前端
MENU前言SmartConfig(智能配网)AP模式(AccessPoint模式)蓝牙配网WebServer模式WPS配网(Wi-FiProtectedSetup)Provisioning(配网服务)静态配置(硬编码)总结前言ESP32配网(Wi-Fi配置)的方式有多种,每种方式都有各自的优缺点。根据具体项目需求,可以选择适合的配网方式。SmartConfig(智能配网)原理ESP32通过监听周
- QLable提升类
入梦游
qt
实现:1.图片移动、保持纵横比缩放、右键菜单1.myLabel.h#ifndefMYLABEL_H#defineMYLABEL_H#includeclassMyLabel:publicQLabel{Q_OBJECTpublic:MyLabel(QWidget*parent=nullptr);private:voidcontextMenuEvent(QContextMenuEvent*e)overr
- VMware Workstation 11 或者 VMware Player 7安装MAC OS X 10.10 Yosemite
iwindyforest
vmwaremac os10.10workstationplayer
最近尝试了下VMware下安装MacOS 系统,
安装过程中发现网上可供参考的文章都是VMware Workstation 10以下, MacOS X 10.9以下的文章,
只能提供大概的思路, 但是实际安装起来由于版本问题, 走了不少弯路, 所以我尝试写以下总结, 希望能给有兴趣安装OSX的人提供一点帮助。
写在前面的话:
其实安装好后发现, 由于我的th
- 关于《基于模型驱动的B/S在线开发平台》源代码开源的疑虑?
deathwknight
JavaScriptjava框架
本人从学习Java开发到现在已有10年整,从一个要自学 java买成javascript的小菜鸟,成长为只会java和javascript语言的老菜鸟(个人邮箱:
[email protected])
一路走来,跌跌撞撞。用自己的三年多业余时间,瞎搞一个小东西(基于模型驱动的B/S在线开发平台,非MVC框架、非代码生成)。希望与大家一起分享,同时有许些疑虑,希望有人可以交流下
平台
- 如何把maven项目转成web项目
Kai_Ge
mavenMyEclipse
创建Web工程,使用eclipse ee创建maven web工程 1.右键项目,选择Project Facets,点击Convert to faceted from 2.更改Dynamic Web Module的Version为2.5.(3.0为Java7的,Tomcat6不支持). 如果提示错误,可能需要在Java Compiler设置Compiler compl
- 主管???
Array_06
工作
转载:http://www.blogjava.net/fastzch/archive/2010/11/25/339054.html
很久以前跟同事参加的培训,同事整理得很详细,必须得转!
前段时间,公司有组织中高阶主管及其培养干部进行了为期三天的管理训练培训。三天的课程下来,虽然内容较多,因对老师三天来的课程内容深有感触,故借着整理学习心得的机会,将三天来的培训课程做了一个
- python内置函数大全
2002wmj
python
最近一直在看python的document,打算在基础方面重点看一下python的keyword、Build-in Function、Build-in Constants、Build-in Types、Build-in Exception这四个方面,其实在看的时候发现整个《The Python Standard Library》章节都是很不错的,其中描述了很多不错的主题。先把Build-in Fu
- JSP页面通过JQUERY合并行
357029540
JavaScriptjquery
在写程序的过程中我们难免会遇到在页面上合并单元行的情况,如图所示
如果对于会的同学可能很简单,但是对没有思路的同学来说还是比较麻烦的,提供一下用JQUERY实现的参考代码
function mergeCell(){
var trs = $("#table tr");
&nb
- Java基础
冰天百华
java基础
学习函数式编程
package base;
import java.text.DecimalFormat;
public class Main {
public static void main(String[] args) {
// Integer a = 4;
// Double aa = (double)a / 100000;
// Decimal
- unix时间戳相互转换
adminjun
转换unix时间戳
如何在不同编程语言中获取现在的Unix时间戳(Unix timestamp)? Java time JavaScript Math.round(new Date().getTime()/1000)
getTime()返回数值的单位是毫秒 Microsoft .NET / C# epoch = (DateTime.Now.ToUniversalTime().Ticks - 62135
- 作为一个合格程序员该做的事
aijuans
程序员
作为一个合格程序员每天该做的事 1、总结自己一天任务的完成情况 最好的方式是写工作日志,把自己今天完成了什么事情,遇见了什么问题都记录下来,日后翻看好处多多
2、考虑自己明天应该做的主要工作 把明天要做的事情列出来,并按照优先级排列,第二天应该把自己效率最高的时间分配给最重要的工作
3、考虑自己一天工作中失误的地方,并想出避免下一次再犯的方法 出错不要紧,最重
- 由html5视频播放引发的总结
ayaoxinchao
html5视频video
前言
项目中存在视频播放的功能,前期设计是以flash播放器播放视频的。但是现在由于需要兼容苹果的设备,必须采用html5的方式来播放视频。我就出于兴趣对html5播放视频做了简单的了解,不了解不知道,水真是很深。本文所记录的知识一些浅尝辄止的知识,说起来很惭愧。
视频结构
本该直接介绍html5的<video>的,但鉴于本人对视频
- 解决httpclient访问自签名https报javax.net.ssl.SSLHandshakeException: sun.security.validat
bewithme
httpclient
如果你构建了一个https协议的站点,而此站点的安全证书并不是合法的第三方证书颁发机构所签发,那么你用httpclient去访问此站点会报如下错误
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path bu
- Jedis连接池的入门级使用
bijian1013
redisredis数据库jedis
Jedis连接池操作步骤如下:
a.获取Jedis实例需要从JedisPool中获取;
b.用完Jedis实例需要返还给JedisPool;
c.如果Jedis在使用过程中出错,则也需要还给JedisPool;
packag
- 变与不变
bingyingao
不变变亲情永恒
变与不变
周末骑车转到了五年前租住的小区,曾经最爱吃的西北面馆、江西水饺、手工拉面早已不在,
各种店铺都换了好几茬,这些是变的。
三年前还很流行的一款手机在今天看起来已经落后的不像样子。
三年前还运行的好好的一家公司,今天也已经不复存在。
一座座高楼拔地而起,
- 【Scala十】Scala核心四:集合框架之List
bit1129
scala
Spark的RDD作为一个分布式不可变的数据集合,它提供的转换操作,很多是借鉴于Scala的集合框架提供的一些函数,因此,有必要对Scala的集合进行详细的了解
1. 泛型集合都是协变的,对于List而言,如果B是A的子类,那么List[B]也是List[A]的子类,即可以把List[B]的实例赋值给List[A]变量
2. 给变量赋值(注意val关键字,a,b
- Nested Functions in C
bookjovi
cclosure
Nested Functions 又称closure,属于functional language中的概念,一直以为C中是不支持closure的,现在看来我错了,不过C标准中是不支持的,而GCC支持。
既然GCC支持了closure,那么 lexical scoping自然也支持了,同时在C中label也是可以在nested functions中自由跳转的
- Java-Collections Framework学习与总结-WeakHashMap
BrokenDreams
Collections
总结这个类之前,首先看一下Java引用的相关知识。Java的引用分为四种:强引用、软引用、弱引用和虚引用。
强引用:就是常见的代码中的引用,如Object o = new Object();存在强引用的对象不会被垃圾收集
- 读《研磨设计模式》-代码笔记-解释器模式-Interpret
bylijinnan
java设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
package design.pattern;
/*
* 解释器(Interpreter)模式的意图是可以按照自己定义的组合规则集合来组合可执行对象
*
* 代码示例实现XML里面1.读取单个元素的值 2.读取单个属性的值
* 多
- After Effects操作&快捷键
cherishLC
After Effects
1、快捷键官方文档
中文版:https://helpx.adobe.com/cn/after-effects/using/keyboard-shortcuts-reference.html
英文版:https://helpx.adobe.com/after-effects/using/keyboard-shortcuts-reference.html
2、常用快捷键
- Maven 常用命令
crabdave
maven
Maven 常用命令
mvn archetype:generate
mvn install
mvn clean
mvn clean complie
mvn clean test
mvn clean install
mvn clean package
mvn test
mvn package
mvn site
mvn dependency:res
- shell bad substitution
daizj
shell脚本
#!/bin/sh
/data/script/common/run_cmd.exp 192.168.13.168 "impala-shell -islave4 -q 'insert OVERWRITE table imeis.${tableName} select ${selectFields}, ds, fnv_hash(concat(cast(ds as string), im
- Java SE 第二讲(原生数据类型 Primitive Data Type)
dcj3sjt126com
java
Java SE 第二讲:
1. Windows: notepad, editplus, ultraedit, gvim
Linux: vi, vim, gedit
2. Java 中的数据类型分为两大类:
1)原生数据类型 (Primitive Data Type)
2)引用类型(对象类型) (R
- CGridView中实现批量删除
dcj3sjt126com
PHPyii
1,CGridView中的columns添加
array(
'selectableRows' => 2,
'footer' => '<button type="button" onclick="GetCheckbox();" style=&
- Java中泛型的各种使用
dyy_gusi
java泛型
Java中的泛型的使用:1.普通的泛型使用
在使用类的时候后面的<>中的类型就是我们确定的类型。
public class MyClass1<T> {//此处定义的泛型是T
private T var;
public T getVar() {
return var;
}
public void setVa
- Web开发技术十年发展历程
gcq511120594
Web浏览器数据挖掘
回顾web开发技术这十年发展历程:
Ajax
03年的时候我上六年级,那时候网吧刚在小县城的角落萌生。传奇,大话西游第一代网游一时风靡。我抱着试一试的心态给了网吧老板两块钱想申请个号玩玩,然后接下来的一个小时我一直在,注,册,账,号。
彼时网吧用的512k的带宽,注册的时候,填了一堆信息,提交,页面跳转,嘣,”您填写的信息有误,请重填”。然后跳转回注册页面,以此循环。我现在时常想,如果当时a
- openSession()与getCurrentSession()区别:
hetongfei
javaDAOHibernate
来自 http://blog.csdn.net/dy511/article/details/6166134
1.getCurrentSession创建的session会和绑定到当前线程,而openSession不会。
2. getCurrentSession创建的线程会在事务回滚或事物提交后自动关闭,而openSession必须手动关闭。
这里getCurrentSession本地事务(本地
- 第一章 安装Nginx+Lua开发环境
jinnianshilongnian
nginxluaopenresty
首先我们选择使用OpenResty,其是由Nginx核心加很多第三方模块组成,其最大的亮点是默认集成了Lua开发环境,使得Nginx可以作为一个Web Server使用。借助于Nginx的事件驱动模型和非阻塞IO,可以实现高性能的Web应用程序。而且OpenResty提供了大量组件如Mysql、Redis、Memcached等等,使在Nginx上开发Web应用更方便更简单。目前在京东如实时价格、秒
- HSQLDB In-Process方式访问内存数据库
liyonghui160com
HSQLDB一大特色就是能够在内存中建立数据库,当然它也能将这些内存数据库保存到文件中以便实现真正的持久化。
先睹为快!
下面是一个In-Process方式访问内存数据库的代码示例:
下面代码需要引入hsqldb.jar包 (hsqldb-2.2.8)
import java.s
- Java线程的5个使用技巧
pda158
java数据结构
Java线程有哪些不太为人所知的技巧与用法? 萝卜白菜各有所爱。像我就喜欢Java。学无止境,这也是我喜欢它的一个原因。日常
工作中你所用到的工具,通常都有些你从来没有了解过的东西,比方说某个方法或者是一些有趣的用法。比如说线程。没错,就是线程。或者确切说是Thread这个类。当我们在构建高可扩展性系统的时候,通常会面临各种各样的并发编程的问题,不过我们现在所要讲的可能会略有不同。
- 开发资源大整合:编程语言篇——JavaScript(1)
shoothao
JavaScript
概述:本系列的资源整合来自于github中各个领域的大牛,来收藏你感兴趣的东西吧。
程序包管理器
管理javascript库并提供对这些库的快速使用与打包的服务。
Bower - 用于web的程序包管理。
component - 用于客户端的程序包管理,构建更好的web应用程序。
spm - 全新的静态的文件包管
- 避免使用终结函数
vahoa.ma
javajvmC++
终结函数(finalizer)通常是不可预测的,常常也是很危险的,一般情况下不是必要的。使用终结函数会导致不稳定的行为、更差的性能,以及带来移植性问题。不要把终结函数当做C++中的析构函数(destructors)的对应物。
我自己总结了一下这一条的综合性结论是这样的:
1)在涉及使用资源,使用完毕后要释放资源的情形下,首先要用一个显示的方