- swing快速入门(四十四)拖动、编辑JTree结点
代码对我眨眼睛
#Swingswingjava
注释很详细,直接上代码上一篇新增内容(源码细节知识点巨多,建议细看)1.设置JTree可编辑2.使用JTree关联的数据模型实现节点的增删改3.鼠标拖动节点事件设计及处理方法4.手动刷新视图与自动刷新的方法区别5.自定位节点视图方法源码:packageswing41_50;importjavax.swing.*;importjavax.swing.tree.*;importjava.awt.*;i
- swing快速入门(四十三)JTree的常见节点关系用法
代码对我眨眼睛
#Swingjavaswing
注释很详细,直接上代码上一篇新增内容(一共16个常见用法,内容较多此处概述一下)⚡按各类关系查询节点或节点组内容⚡按各类关系查询某种关系是否成立⚡按各类关系查询符合某些关系的数量packageswing41_50;importjavax.swing.*;importjavax.swing.tree.DefaultMutableTreeNode;importjavax.swing.tree.Tree
- java 树节点监听器_JTree使用实例
橘喲
java树节点监听器
如何使用Jtree利用JTree类,你可以显示等级体系的数据。一个JTree对象并没有包含实际的数据;它只是提供了数据的一个视图。像其他非平凡的(nontrivial)Swing组件一样,这种Jtree通过查询她的数据模型获得数据。Jtree垂直显示它的数据。树中显示的每一行包含一项数据,称之为节点(node)。每颗树有一个根节点(rootnode),其他所有节点是它的子孙。默认情况下,树只显示根
- swing快速入门(四十二)JTree的基本创建
代码对我眨眼睛
#Swingjavaswing
注释很详细,直接上代码新增内容JTree的创建设置节点之间的连线设置节点之间的水平分割线设置根节点的展开折叠图标设置是否隐藏根节点packageswing31_40;importjavax.swing.*;importjavax.swing.tree.DefaultMutableTreeNode;publicclassswing_test_40{JFramejFrame=newJFrame("简单
- 构造哈夫曼树(数据结构实训)(难度系数85)
星与星熙.
java数据结构数据结构java算法霍夫曼树
构造哈夫曼树题目描述:根据给定的叶结点字符及其对应的权值创建哈夫曼树。输入:第一行为叶子结点的数目n(1tree[j].dq){min1=j;}}for(intj=0;jtree[j].dq)&&min1!=j)//j不能等于min1因为已经存储了这个最小结点,只能使用一次{min2=j;}}tree[n]=newjgt();//初始化,不初始化会空指针异常tree[n].qz=tree[n].d
- java 树 右键菜单_JTree右键菜单
weixin_39837867
java树右键菜单
2008-12-1610:287010importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.event.MouseEvent;importjava.awt.event.MouseListener;importjavax.swing.JComboBox;importjavax.swing
- Java Swing高级组件——树组件
JAVA问题少年
JavaSwingJavajavaswing
Swing树组件树状结构是一种常用的信息表现形式,它可以直观的显示出一组信息的层次结构。Swing中的JTree类用来创建树。一,创建一个简单的树JTree有三种常见的构造方法用来创建树。构造方法说明JTree()创建一个默认的树JTree(TreeNoderoot)根据指定的根节点创建树JTree(TreeModelnewModel)根据指定树模型创建树DefaultMutableTreeNod
- java--z-tree
wang1989cs
web
最近需要使用树形展示权限,所以研究了一下JavaTree,其实java中有不少Tree展示,具体有如下几种:Tree的几种开源组件:1.dtree2.ztree(国内的,api全中文,我用这个)3.JTree4.dhtmlxTree(国外的,种类齐全),网址为:http://dhtmlx.com/docs/products/dhtmlxTree/index.shtml##以后是我找的还不错的Tre
- 037-JTree控件使用讲解
CSDN专家-赖老师(软件之家)
java讲座javaJTreeHashtableTreeNodeJEditorPane
上一讲:036-JList列表控件使用案例讲解_CSDN专家-赖老师(软件之家)的博客-CSDN博客下一讲:038-JTable控件应用案例讲解_CSDN专家-赖老师(软件之家)的博客-CSDN博客JTree控件的使用JTree树是用来显示一组层次分明的数据,可展开也可合并构造函数JTree():创建一个默认的树JTree(Hashtablevalue):根据Hashtable对象中值的关系来创建
- 036-JList列表控件使用案例讲解
CSDN专家-赖老师(软件之家)
java讲座javaJList
上一讲:035-JAVA语言实现下拉菜单与弹出菜单功能_CSDN专家-赖老师(软件之家)的博客-CSDN博客下一讲:037-JTree控件使用讲解_CSDN专家-赖老师(软件之家)的博客-CSDN博客JList控件用于显示对象列表,并允许用户选择列表中的一项或多项 构造函数:JList():建立一个新的下拉列表JList(ListModeldataModel):利用listModel建立一个下
- 038-JTable控件应用案例讲解
CSDN专家-赖老师(软件之家)
java讲座JTableTableModel
上一讲:037-JTree控件使用讲解_CSDN专家-赖老师(软件之家)的博客-CSDN博客JTable控件作用:1、表格由一个表格头部(列头部),表格列和单元值组成。2、表格单元值由实现TableCellRender接口的对象绘制,并由实现了CellEditor接口的对象进行编辑。3、表格支持很多选取模式,包括行、列和单元选取。4、表格单独在swing.table包中有接口和类。5、只有放在滚动
- 第十二章 Swing编程
Maximize+
笔记java
本章要点Swing编程基础Swing组件的继承层次常用Swing组件的用法使用JToolBar创建工具条颜色选择对话框和文件浏览对话框Swing提供的特殊容器Swing的简化拖放操作使用JLayer装饰组件开发透明的、不规则形状窗口开发进度条开发滑动条使用JTree和TreeModel开发树使用JTable和TableModel开发表格使用JTextPane组件使用Swing开发图形界面比AWT更
- 使用带复选框的CheckBoxTree树组件
[天行健]
JavaSwing
在使用JavaSwing开发UI程序时,很有可能会遇到使用带复选框的树的需求,但是JavaSwing并没有提供这个组件,因此如果你有这个需求,你就得自己动手实现带复选框的树。CheckBoxTree与JTree在两个层面上存在差异:1.在模型层上,CheckBoxTree的每个结点需要一个成员来保存其是否被选中,但是JTree的结点则不需要。2.在视图层上,CheckBoxTree的每个结点比JT
- Summary (1)
bnuwenzi
Summary
简单总结上周学习情况:iTechs工作:iTechsKnowledgeManagement;MSRanalysis;只是初步地看了一下代码。自己学习了一下JTree,最好的学习文档时sun的Javatutorial。Jtree的功能还是很强的。自己学习情况:c++primary关于面向对象部分,以及部分泛型编程,同时初略地翻了条《moreeffectiveC++》,算法部分:《算法导论》第08章线
- 12.Swing编程
qq_huatian
疯狂java讲义-阅读小记Swing编程
本章要点Swing编程基础Swing组件的继承层次常见Swing组件的用法使用JToolBar创建工具条颜色选择对话框和文件浏览对话框Swing提供的特殊容器java的拖放操作Swing的简化拖放操作Applet基础知识开发Applet的基本操作使用appletviewer浏览Applet开发进度条开发滑动条使用JTree和TreeModel开发树使用JTable和TableModel开发表格使用
- Java中带复选框的树(Java CheckBox Tree)的实现和应用
wangpingfang
Java编程语言技术
在使用JavaSwing开发UI程序时,很有可能会遇到使用带复选框的树的需求,但是JavaSwing并没有提供这个组件,因此如果你有这个需求,你就得自己动手实现带复选框的树。CheckBoxTree与JTree在两个层面上存在差异:在模型层上,CheckBoxTree的每个结点需要一个成员来保存其是否被选中,但是JTree的结点则不需要。在视图层上,CheckBoxTree的每个结点比JTree的
- Swing组件
zings
swingjcomponentintegerimportstringdialog
11.2Swing组件(Components)Swing是AWT的扩展,它提供了许多新的图形界面组件。Swing组件以“J”开头,除了拥有与AWT类似的按钮(JButton)、标签(JLabel)、复选框(JCheckBox)、菜单(JMenu)等基本组件外,还增加了一个丰富的高层组件集合,如表格(JTable)、树(JTree)。11.2.1Swing组件的层次结构在javax.swing包中,
- ajaxswing_AjaxSwing的3.0版已发布
diluan6799
ajaxswingCreamTec团队已经发布了其针对JavaSwing应用程序的AjaxSwingWeb部署平台的3.0版。AjaxSwing允许开发人员通过标准的Swing组件实现用户界面。AjaxSwing背后的想法是提供一个Java到HTML的转换器,该转换器在运行时创建HTML和JavaScript,与编译时相反。3.0版引入了对自定义单元格和组件的JTree支持,每个节点的高度都不同。
- JTree节点 JTree设置不同节点不同图标的最小化代码实例 JTree图标
mfanw
importobjecttreeclassstring
为JTree的不同节点设置不同的图标。我的例子中控制了只是设置节点的图标,当然也可以设置文件夹的图标,不必赘言。最小化代码如下:(我写了两个类,方便查看)第一个类(共两个类):importjava.awt.Component;importjavax.swing.ImageIcon;importjavax.swing.JTree;importjavax.swing.tree.DefaultTreeC
- JAVA SWING JTREE
andnnl
importjavax.swing.JFrame;importjavax.swing.JTree;importjavax.swing.event.TreeSelectionEvent;importjavax.swing.event.TreeSelectionListener;importjavax.swing.tree.DefaultMutableTreeNode;importjavax.swin
- TWaver组件之Tree使用(翻译TWaver文档+补充自己使用体会)
nihon_liuyi
javaSwing
第一篇:使用一个Tree组件TTree是Twaver提供的主要图形组件之一,它实现了分层呈现DataBox中数据,每个Tree都有一个根节点,所有节点都从该节点下降。树上的每个节点都是一个element实例,它有一系列的属性,如标签、图标、工具提示等,这些属性通过element的一到多个属性进行设置的。介绍Tree组件这个TWaverTree继承自Swing的JTree和实现了TWaver的Tvi
- JTree的总结
lishigui
原创javatreenullclassstringobjectpath
JTreeAPI:publicclassJTreeextendsJComponentimplementsScrollable,Accessible将分层数据集显示为轮廓的控件。有关面向任务的文档和使用树的示例,请参阅TheJavaTutorial中的HowtoUseTrees一节。树中特定的节点可以由TreePath(封装节点及其所有祖先的对象)标识,或由其显示行(其中显示区域中的每一行都显示一个
- 如何遍历JTree的每一个节点?
TIB
测试工具RFT自动化测试\框架设计
下面的例子中将获取到JTree中的每一个节点并按树状结构打印出来:publicvoidtestMain(Object[]args){//TurnoffLogViewerforthisexamplesetOption(IOptionName.BRING_UP_LOGVIEWER,false);//StartClassicsJavaApplicationstartApp("ClassicsJavaA"
- Java zTree 的异步加载demo示例
X-rapido
前端页面框架
查看原文:http://www.ibloger.net/article/419.html最近需要使用树形展示权限,所以研究了一下JavaTree,其实java中有不少Tree展示,具体有如下几种:Tree的几种开源组件:1.dtree2.ztree(国内的,api全中文,我用这个)3.JTree4.dhtmlxTree(国外的,种类齐全),网址为:http://dhtmlx.com/docs/pr
- JTree用法及JTree使用经验总结
zhengbo0
swing
importjava.awt.Dimension;importjava.awt.Color;importjavax.swing.JFrame;importjavax.swing.JPanel;importjavax.swing.JScrollPane;importjavax.swing.JTree;importjavax.swing.BoxLayout;importjavax.swing.tree
- JTree(右键菜单,可拖拽)+JTable(可翻页,列中含有按钮,隐藏列)
ycb1689
Swing
首先来看一下展示界面,JTree的特点有:节点可拖拽,根据输入生成目录,右键有菜单,点击触发事件等JTable的特点有:含有隐藏列,可以进行翻页,列中含有下载按钮等在来看一下代码吧,基本代码由Eclipse上的WindowBuilder进行拖拽式产生的,所以看起来有点乱,不过没事在使用WindowBuilder的时候要画JTree和JTable时要注意,这两个有几个共同点,必须放到JScrollP
- JTree 添加删除节点
CARROTHWQ
[java]viewplaincopyimportjava.awt.BorderLayout;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.util.Enumeration;importjavax.swing.BorderFactory;importjavax.swing.JButto
- 给JTree节点添加右键刷新菜单
paibigstar
不多bb直接贴代码和效果packageswing;importjava.awt.BorderLayout;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.event.MouseAdapter;importjava.awt.event.MouseEvent;importjavax.
- 使用JTree增加,删除,重命名节点,延迟和即时加载树结点完整实例
洛神夫
首先来看一下效果,如下图所示,该目录结构树,通过在右键Pop菜单实现了添加子目录,删除目录和重命名目录的功能,当然在双击目录节点的时候也可以完成重命名的操作,之后还将了关于结点的延迟加载和及时加载的实现方法。下面就来看一下怎样具体实现吧,关于拖拽部分已经在http://blog.csdn.net/luoshenfu001/article/details/10893673上面有完整的实现了,在此就不
- 一个JTree节点添加、删除和修改的例子
lihailinlihailin
java
importjava.awt.BorderLayout;importjava.awt.Color;importjava.awt.Component;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.event.MouseAdapter;importjava.awt.event.Mo
- 多线程编程之join()方法
周凡杨
javaJOIN多线程编程线程
现实生活中,有些工作是需要团队中成员依次完成的,这就涉及到了一个顺序问题。现在有T1、T2、T3三个工人,如何保证T2在T1执行完后执行,T3在T2执行完后执行?问题分析:首先问题中有三个实体,T1、T2、T3, 因为是多线程编程,所以都要设计成线程类。关键是怎么保证线程能依次执行完呢?
Java实现过程如下:
public class T1 implements Runnabl
- java中switch的使用
bingyingao
javaenumbreakcontinue
java中的switch仅支持case条件仅支持int、enum两种类型。
用enum的时候,不能直接写下列形式。
switch (timeType) {
case ProdtransTimeTypeEnum.DAILY:
break;
default:
br
- hive having count 不能去重
daizj
hive去重having count计数
hive在使用having count()是,不支持去重计数
hive (default)> select imei from t_test_phonenum where ds=20150701 group by imei having count(distinct phone_num)>1 limit 10;
FAILED: SemanticExcep
- WebSphere对JSP的缓存
周凡杨
WAS JSP 缓存
对于线网上的工程,更新JSP到WebSphere后,有时会出现修改的jsp没有起作用,特别是改变了某jsp的样式后,在页面中没看到效果,这主要就是由于websphere中缓存的缘故,这就要清除WebSphere中jsp缓存。要清除WebSphere中JSP的缓存,就要找到WAS安装后的根目录。
现服务
- 设计模式总结
朱辉辉33
java设计模式
1.工厂模式
1.1 工厂方法模式 (由一个工厂类管理构造方法)
1.1.1普通工厂模式(一个工厂类中只有一个方法)
1.1.2多工厂模式(一个工厂类中有多个方法)
1.1.3静态工厂模式(将工厂类中的方法变成静态方法)
&n
- 实例:供应商管理报表需求调研报告
老A不折腾
finereport报表系统报表软件信息化选型
引言
随着企业集团的生产规模扩张,为支撑全球供应链管理,对于供应商的管理和采购过程的监控已经不局限于简单的交付以及价格的管理,目前采购及供应商管理各个环节的操作分别在不同的系统下进行,而各个数据源都独立存在,无法提供统一的数据支持;因此,为了实现对于数据分析以提供采购决策,建立报表体系成为必须。 业务目标
1、通过报表为采购决策提供数据分析与支撑
2、对供应商进行综合评估以及管理,合理管理和
- mysql
林鹤霄
转载源:http://blog.sina.com.cn/s/blog_4f925fc30100rx5l.html
mysql -uroot -p
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
[root@centos var]# service mysql
- Linux下多线程堆栈查看工具(pstree、ps、pstack)
aigo
linux
原文:http://blog.csdn.net/yfkiss/article/details/6729364
1. pstree
pstree以树结构显示进程$ pstree -p work | grep adsshd(22669)---bash(22670)---ad_preprocess(4551)-+-{ad_preprocess}(4552) &n
- html input与textarea 值改变事件
alxw4616
JavaScript
// 文本输入框(input) 文本域(textarea)值改变事件
// onpropertychange(IE) oninput(w3c)
$('input,textarea').on('propertychange input', function(event) {
console.log($(this).val())
});
- String类的基本用法
百合不是茶
String
字符串的用法;
// 根据字节数组创建字符串
byte[] by = { 'a', 'b', 'c', 'd' };
String newByteString = new String(by);
1,length() 获取字符串的长度
&nbs
- JDK1.5 Semaphore实例
bijian1013
javathreadjava多线程Semaphore
Semaphore类
一个计数信号量。从概念上讲,信号量维护了一个许可集合。如有必要,在许可可用前会阻塞每一个 acquire(),然后再获取该许可。每个 release() 添加一个许可,从而可能释放一个正在阻塞的获取者。但是,不使用实际的许可对象,Semaphore 只对可用许可的号码进行计数,并采取相应的行动。
S
- 使用GZip来压缩传输量
bijian1013
javaGZip
启动GZip压缩要用到一个开源的Filter:PJL Compressing Filter。这个Filter自1.5.0开始该工程开始构建于JDK5.0,因此在JDK1.4环境下只能使用1.4.6。
PJL Compressi
- 【Java范型三】Java范型详解之范型类型通配符
bit1129
java
定义如下一个简单的范型类,
package com.tom.lang.generics;
public class Generics<T> {
private T value;
public Generics(T value) {
this.value = value;
}
}
- 【Hadoop十二】HDFS常用命令
bit1129
hadoop
1. 修改日志文件查看器
hdfs oev -i edits_0000000000000000081-0000000000000000089 -o edits.xml
cat edits.xml
修改日志文件转储为xml格式的edits.xml文件,其中每条RECORD就是一个操作事务日志
2. fsimage查看HDFS中的块信息等
&nb
- 怎样区别nginx中rewrite时break和last
ronin47
在使用nginx配置rewrite中经常会遇到有的地方用last并不能工作,换成break就可以,其中的原理是对于根目录的理解有所区别,按我的测试结果大致是这样的。
location /
{
proxy_pass http://test;
- java-21.中兴面试题 输入两个整数 n 和 m ,从数列 1 , 2 , 3.......n 中随意取几个数 , 使其和等于 m
bylijinnan
java
import java.util.ArrayList;
import java.util.List;
import java.util.Stack;
public class CombinationToSum {
/*
第21 题
2010 年中兴面试题
编程求解:
输入两个整数 n 和 m ,从数列 1 , 2 , 3.......n 中随意取几个数 ,
使其和等
- eclipse svn 帐号密码修改问题
开窍的石头
eclipseSVNsvn帐号密码修改
问题描述:
Eclipse的SVN插件Subclipse做得很好,在svn操作方面提供了很强大丰富的功能。但到目前为止,该插件对svn用户的概念极为淡薄,不但不能方便地切换用户,而且一旦用户的帐号、密码保存之后,就无法再变更了。
解决思路:
删除subclipse记录的帐号、密码信息,重新输入
- [电子商务]传统商务活动与互联网的结合
comsci
电子商务
某一个传统名牌产品,过去销售的地点就在某些特定的地区和阶层,现在进入互联网之后,用户的数量群突然扩大了无数倍,但是,这种产品潜在的劣势也被放大了无数倍,这种销售利润与经营风险同步放大的效应,在最近几年将会频繁出现。。。。
如何避免销售量和利润率增加的
- java 解析 properties-使用 Properties-可以指定配置文件路径
cuityang
javaproperties
#mq
xdr.mq.url=tcp://192.168.100.15:61618;
import java.io.IOException;
import java.util.Properties;
public class Test {
String conf = "log4j.properties";
private static final
- Java核心问题集锦
darrenzhu
java基础核心难点
注意,这里的参考文章基本来自Effective Java和jdk源码
1)ConcurrentModificationException
当你用for each遍历一个list时,如果你在循环主体代码中修改list中的元素,将会得到这个Exception,解决的办法是:
1)用listIterator, 它支持在遍历的过程中修改元素,
2)不用listIterator, new一个
- 1分钟学会Markdown语法
dcj3sjt126com
markdown
markdown 简明语法 基本符号
*,-,+ 3个符号效果都一样,这3个符号被称为 Markdown符号
空白行表示另起一个段落
`是表示inline代码,tab是用来标记 代码段,分别对应html的code,pre标签
换行
单一段落( <p>) 用一个空白行
连续两个空格 会变成一个 <br>
连续3个符号,然后是空行
- Gson使用二(GsonBuilder)
eksliang
jsongsonGsonBuilder
转载请出自出处:http://eksliang.iteye.com/blog/2175473 一.概述
GsonBuilder用来定制java跟json之间的转换格式
二.基本使用
实体测试类:
温馨提示:默认情况下@Expose注解是不起作用的,除非你用GsonBuilder创建Gson的时候调用了GsonBuilder.excludeField
- 报ClassNotFoundException: Didn't find class "...Activity" on path: DexPathList
gundumw100
android
有一个工程,本来运行是正常的,我想把它移植到另一台PC上,结果报:
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.mobovip.bgr/com.mobovip.bgr.MainActivity}: java.lang.ClassNotFoundException: Didn't f
- JavaWeb之JSP指令
ihuning
javaweb
要点
JSP指令简介
page指令
include指令
JSP指令简介
JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分。
JSP指令的基本语法格式:
<%@ 指令 属性名="
- mac上编译FFmpeg跑ios
啸笑天
ffmpeg
1、下载文件:https://github.com/libav/gas-preprocessor, 复制gas-preprocessor.pl到/usr/local/bin/下, 修改文件权限:chmod 777 /usr/local/bin/gas-preprocessor.pl
2、安装yasm-1.2.0
curl http://www.tortall.net/projects/yasm
- sql mysql oracle中字符串连接
macroli
oraclesqlmysqlSQL Server
有的时候,我们有需要将由不同栏位获得的资料串连在一起。每一种资料库都有提供方法来达到这个目的:
MySQL: CONCAT()
Oracle: CONCAT(), ||
SQL Server: +
CONCAT() 的语法如下:
Mysql 中 CONCAT(字串1, 字串2, 字串3, ...): 将字串1、字串2、字串3,等字串连在一起。
请注意,Oracle的CON
- Git fatal: unab SSL certificate problem: unable to get local issuer ce rtificate
qiaolevip
学习永无止境每天进步一点点git纵观千象
// 报错如下:
$ git pull origin master
fatal: unable to access 'https://git.xxx.com/': SSL certificate problem: unable to get local issuer ce
rtificate
// 原因:
由于git最新版默认使用ssl安全验证,但是我们是使用的git未设
- windows命令行设置wifi
surfingll
windowswifi笔记本wifi
还没有讨厌无线wifi的无尽广告么,还在耐心等待它慢慢启动么
教你命令行设置 笔记本电脑wifi:
1、开启wifi命令
netsh wlan set hostednetwork mode=allow ssid=surf8 key=bb123456
netsh wlan start hostednetwork
pause
其中pause是等待输入,可以去掉
2、
- Linux(Ubuntu)下安装sysv-rc-conf
wmlJava
linuxubuntusysv-rc-conf
安装:sudo apt-get install sysv-rc-conf 使用:sudo sysv-rc-conf
操作界面十分简洁,你可以用鼠标点击,也可以用键盘方向键定位,用空格键选择,用Ctrl+N翻下一页,用Ctrl+P翻上一页,用Q退出。
背景知识
sysv-rc-conf是一个强大的服务管理程序,群众的意见是sysv-rc-conf比chkconf
- svn切换环境,重发布应用多了javaee标签前缀
zengshaotao
javaee
更换了开发环境,从杭州,改变到了上海。svn的地址肯定要切换的,切换之前需要将原svn自带的.svn文件信息删除,可手动删除,也可通过废弃原来的svn位置提示删除.svn时删除。
然后就是按照最新的svn地址和规范建立相关的目录信息,再将原来的纯代码信息上传到新的环境。然后再重新检出,这样每次修改后就可以看到哪些文件被修改过,这对于增量发布的规范特别有用。
检出