2023年12月8日发(作者:赖丽姝)
Code one条形码生成平台的设计与实现
第19卷第1期
2004年3月
北京机械工业学院
JournalofBeijingInstituteofMachinery
Vol_19No.1
Mar.2004
文章编号:1OO8—1658(2004)01—0055—06
Codeone条形码生成平台的设计与实现
贺斌,佟俐鹃
(北京机械工业学院计算及自动化系.北京100085)
摘要:通常,条形码生成是采用专用的条形码打印机进行生成,条形码打
印机具有价格昂贵,生成条形码种类少等缺点.为了避免以上缺点,采用Java面向对
象技术以Codeone条形码为例构造了条形码生成平台.给出了平台总体结构设计,
Codeone条形码的数据编码和纠错码词求取的算法实现以及平台支撑核心类——元
素类和面板类的设计与实现.平台经过测试,可以满足条形码生成的需要.
关键词:条形码;二维条形码;Codeone
中图分类号:TP391.1文献标识码:A
DesignandImplementationofCodeonebarcode-makingplatform
HEBin,TONGLi—juan
(DepartmentofComputerScience&.gInstituteofMachinery,)
Abstract:Generally,specializedbarcodeprintergeneratesbarcode,however,Barcodeprinter
dthese shortcomings,acodeonebarcodemakingplatformbasedonobjectorientedtechnologyofJa—
—thmofdataencodingander—
rorcorrectingcodegeneratingofCodeonebarcodeandtheimplementationofkernelclass:el—
beentested,theplatformcanmeettheneed
ofgeneratingdifferentbarcodes.
Keywords;barcode;two-dimensionbarcode;Codeone
条形码技术是在计算机的应用实践中产生和发展起来的一种自动识别技术,它包括有关
标准的制定,条形码编码,条形码印制,条形码识别,条形码译码,条形码解码等技术.其中,一
维条形码由一组平行且黑白相间的条空组成,印制在纸张等介质上,具有输入速度快,易于识
别,成本低廉和可靠性强等特点,因而发展迅速,应用广泛.
但是,随着条形码的应用领域的不断拓展,在一定面积上的信息量有了更高的要求.为了
更好的满足新的应用需求,二维条形码便应运而生,代表性的二维条形码有PDF417,Code
one,QRCode,Code16K,Matrix等.本文以Codeone条形码为例论述条形码生成平台的设
计与实现.
收疆日期:2003—09—25
基金项目:黑龙江自然科学基金资助项目[F98--01]
作者简介:贺斌(1976一),男,陕西西安人,北京机械工业学院计算机及自动化系硕士研究生,主要从事Codeone条形码
技术的研究.
56北京机械工业学院第l9卷 1Codeone条形码技术简介
Codeone条形码是利用图像识别原理,采用新的几何图像和结构设计出的一种新型矩阵
式二维条形码.具有以下特点L1]:
①信息容量大.可以表示2218个数字字母型字符或3550个数字.
②容错能力强.在Codeone条形码符号中27到50的字符用于错误检测和错误纠正.
③译码可靠性高.对损坏条码误读的可能性相当低.如对Code1A是约7000万分之一.
④占用空间小.适合在要求占用空间小的情况下使用,例如用来标识计算机芯片等.
2Codeone条形码生成平台的设计与实现
2.1Codeone条形码生成平台的总体设计
由于Java语言的移植性,动态性等特性有利于平台跨操作系统的实现以及实现后的维护
和升级,因此平台采用Java语言进行构造.下面给出平台的总体设计:
①平台提供可视化的元素编辑和绘制功能,编辑元素分为静态元素和动态元素.其中静态元
素具有自我绘制功能,不具有数据绑定功能,其主要包括直线,长方形,圆,静态文本以及静
态图像;动态元素不仅具有自我绘制的功能,而且具有数据绑定功能,其主要包括动态文本,
动态图像以及条形码.用户可以对选中元素进行元素属性修改,以及元素删除,复制,粘贴
等操作.在元素编辑完成后,用户可以把元素保存为磁盘文件.
②平台提供数据源接口.可以从不同的数据源获取数据为动态元素提供数据绑定支持.这里
数据源主要有数据库(如Oracle,SQLServer数据库等),XML数据源以及表格数据源. ③平台提供与普通打印机的接口.通过平台提供的排版设置模块对输出的元素进行格式设
置,然后通过接口把元素按设置的格式进行输出.
④平台提供与不同条形码的接口,当新的条形码算法程序实现后,可通过此接口完成对相应条
形码的支持.
2.2Codeone条形码的数据编码和纠错码词求取
(1)用户数据编码:Codeone条形码提供了6种不同的编码模式来进行数据编码,这6种模式
分别是ASCII模式,C40模式,十进制模式,文本模式,EDI模式和字节模式,模式的详细介绍
参考文献[1].具体编码算法步骤是,(a)根据用户要求置标志位,例如如果用户数据是EDI
数据,就进入EDI模式进行编码;如果用户数据是图像或二进制文件,就进入字节模式进行编
码;否则进入其它模式进行编码.(b)分析用户数据,如果全是数字,就进入十进制模式进行
编码;如果用户数据是大写字母和数字组成的,就进入C40模式进行编码;如果用户数据是小
写字母和数字组成的,就进入文本模式进行编码;如果用户数据是其它混合型数据,就进入
ASCII模式进行编码.(c)判断生成的码词是否超过相应Codeone条形码版本的符号长度,
如果小于符号长度,用填充字符(129)进行填充;否则截取到符号长度并进行相应的提示.从
而形成数据码词.编码算法的流程图如图1所示].
(2)纠错码词的求取:错误纠正码词生成的算法是用GF(256)运算上的Reed—Solomon算法
求取错误纠正码词].算法思想是用数据码词多项式乘(为Codeone条形码符号字 符
的总数,k为数据码词的个数)后再除以生成多项式g(z)所得的余式.余式的最高项系数为
第1期贺斌等:Codeone条形码生成平台的设计与实现57
第一个错误纠正码词,而零次方项的系数为最后一个错误纠正码词.纠错码词的求取,关键是
求取生成多项式的系数,这里生成多项式为g(z)一(x--2.)(z一2)…(z一2-),其中,.为纠
错码词的个数.g(z)的系数求取算法如下:
g(z)=(z一2.)(z一2)…(z一2一)一+at-1zr_+…+n2+n1z+n0(1)
根据,.+1次多项式和,.次多项式的一般关系形式:
(n+n一1z一+…+n2+n1z+no)(z+6)一n'+(n+n,一1)z+…+(azb+口1)
+(n16+no)z+nob(2)
根据上面的系数关系:从n-一1,no一1开始递推可求取g(z)的系数.程序实现如下:
置用户数据
标志位
分析标志位
其它模式
分析用户数据
EDI模式Il字节模式
大写字母和数字卜写字母和数字
切换到达十进制模式Il切换到c4o模式ll切换到文本模式
其它混合字符
进入ASCII模式
三位数字(000,999)可
以用10住串进行编码
用2个符号字符寸3个大写
字母和敖字数据进行编码 用2个符号字符对3个小写
字母扣数事敏据之f亍编码
e版本
断数据是否剩余?—一
,
/
在当前模式下,根据数据符号
长度处理剩余数据
Unicode转化ASCII
否有剩:一=>—一
2-t"
是否至少剩
镣≮砖/
Y
囝1数据编码漉程图
/*纠错码词生成式(X--fl**O)(x—a**1)(X--fl**2)…(X--fl**(r一1))
gen[o]——低位系数gen[gen.1ength--1]——高位系数
errorNum——纠错码词个数element——GF(256)生成的元素
GFMutiply256——GF(256)乘法运算
GFAdd——GF(256)加法运算*/
军
北京机械工业学院第19卷
publicstaticint[3errorGen256(interrorNum,int[]element)
(
if(errorNum<1)returnnull:
int[]gen—newint[errorNum+1];
int[]genMid=newint[-errorNum~1]; ff初始化
gen[0]一1;gen[1]一1;
//i纠错码词个数
//j多项式系数的个数
for(inti一2;i<一errorNum;i++)
(
genMid[0]一GFMutiply256(gen[-0],element[i],element);
for(intj一1;j<i;j++)
(
genMid[j]一GFAdd(GFMutiply256(gen[-j],element[i],element),gen[j一13>;
}
genMid[i]一1:
gen:(int[-])();
}
returngen;
}
有了生成多项式系数后,可在有限域GF(256)通过竖式除法来求取纠错码词;然后把纠
错码词填到Codeone条形码符号相应的位置.从而形成Codeone条形码码词.
2.3平台的支撑核心类的实现
根据平台总体设计,下面给出平台两个支撑核心类——元素类和面板类的实现.
2.3.1元素类的实现
①元素类的功能分析.元素类应具备的功能要求如下:
(a)一个元素类应该能够描述系统中基本屏幕绘制元素(如直线,Codeone二维条形码
等),即包含基本屏幕绘制元素的所有属性.(b)元素类具有自身属性的编辑的功能,如自身
属性的修改,自我复制等.(c)元素类具有完成自身的绘制功能.
②元素类的类图如图2所示. (a)最上层是Java核心类库中的Object类,它是所有类的基类.为扩展类提供线程,自我
编辑等功能的支持.(b)第二层
是所有元素类的抽象类——Cell
类,此类封装了所有元素类的共
同属性,如元素的标识,元素的状
态等属性.此外,此类还应具有
所有元素类和外界接口的抽象方图2元京类关系图
第1期贺斌等:Codeone条形码生成平台的设计与实现59
法,如绘制方法等.(c)最底层是所有元素类.具有描述元素自身的私有属性和方法.如Cir—
cleCell类描述一个圆,具有私有属性圆心和半径等.(d)二维条形码Barcode类.此类作为一
个特殊的元素类.它封装了Codeone二维条形码的基本参数,编码参数和纠错参数,编码方
法以及纠错方法等.基本参数包括Codeone二维条形码的版本号,尺寸模式,绘图模式以及
旋转角度;编码参数包括用户数据,数据码词长度和编码后的位串;纠错参数包括纠错码词长
度和纠错后的位串.编码方法和纠错方法用于生成数据码词和纠错码词.
③元素类的Java语言实现[5]:元素类的实现采用Java的内部类机制中的静态内部类(Java
内部类详细介绍可以参考文献[53).具体实现是通过先定义一个外部EditElement类,然后
按上面元素类的继承关系再定义抽象静态Cell内部类,接着在把具体元素类定义为相应的静
态内部类.这样就完成整个元素类的内部类实现.采用静态内部类可以避免为每个具体元素 类都生成一个文件造成文件个数太多,可以使元素类整体上有良好的封装性和扩充性,同时有
利于平台的调试和升级.元素类的Java程序如下:
classEditElement
(//所有子类的基类Cell
staticabstractclassCell
{//共同的属性
publicStringid;
publicStringname;
publicRectangler;
//基类的抽象方法
publicabstractvoiddraw(Graphicsg);
publicabstractvoidprint(Graphicsg);
//所有元素类的共用方法
}
//Line类的实现
staticclassLineCellextendsCell
{
//Line的一些私有属性
publicintlineStyle;//线的风格
publicintlinewidth;//线宽
//abstract方法的实现
publicvoiddraw(Graphicsg)
{
ne(g,r.X,r.Y,r.x+r,width,r.y+,
foreColor,lineStyle,lineWidth);
60北京机械工业学院第19卷
) //其它的继承类的实现.
)
2.3.2面板类的实现
①面板类的功能分析.面板类是用户可视化操作的支撑类.应具有以下几个功能:(a)接收
用户的操作事件,并对这些事件进行处理.(b)具有容器的功能,能够存放生成的元素对
象和修改了属性的元素对象.(c)具有对所有元素类的绘制功能,即在用户事件处理完成
后,能够自动对相应的元素对象进行绘制.
②面板类的实现.JComponent类是Java的Swing轻量组件的基类.它为其扩展类提供了
大量的基本功能.因此,CellPanel类扩展此类来继承其相应的功能,并且通过实现Ac—
tionListener,keyListener,MouseListener和MouseMotionListener接口来完成用户事件
的处理.此外CellPanel类还维护一个
Vector类的实例引用,用它来完成对元素
对象的存放.最后通过重载Jcomponent
类的PaintComponent方法实现在用户事
件处理完成后对相应的元素对象的绘制.
面板类关系如图3所示.
3结束语
一
至三
[习
臣雪
E''竺竺:::==j图3CellPanel类关系图
在欧洲,美国,Codeone条形码已经开始 应用于汽车及电子产品组装中.同时,国际自动识别设备制造商协会和美国标准协会已经制
定了一些二维条形码的标准,如49,PDF417标准.我国也已于1998年制定
了PDF417的国家标准,并且随着二维条形码携带数据量的增加以及相关标准的制定,将会促
进我国服务行业的发展,同时也会促进其他行业的发展.
参考文献:
[11矫云起,张成海.二维条码技术[M].北京:中国物价出版社,1996.
[2]李金哲,朱俊英.每形码技术应用rM1.沈阳:辽宁科学技术出版社,1991.
[-31薛红,薛军之,邹彦卿.二维条码在车辆管理系统中的应用研究[J].计算机工程,2002,
28(6):2儿一2l3.
[41王育民,王新梅.差错控制编码基础和应用[M].北京:人民邮电出版社,1986.
[5]DavidMGeary(着).Java2核心技术卷I:原理[M].马欣民,王兴民,龚尧莞,等译.北京:
机械工业出版社,2002.
[6](着).Java2图形设计卷IIswing[M1.李建森,蒋欣军,王兴军,等译.北
京:机械工业出版社,2000.
2023年12月8日发(作者:赖丽姝)
Code one条形码生成平台的设计与实现
第19卷第1期
2004年3月
北京机械工业学院
JournalofBeijingInstituteofMachinery
Vol_19No.1
Mar.2004
文章编号:1OO8—1658(2004)01—0055—06
Codeone条形码生成平台的设计与实现
贺斌,佟俐鹃
(北京机械工业学院计算及自动化系.北京100085)
摘要:通常,条形码生成是采用专用的条形码打印机进行生成,条形码打
印机具有价格昂贵,生成条形码种类少等缺点.为了避免以上缺点,采用Java面向对
象技术以Codeone条形码为例构造了条形码生成平台.给出了平台总体结构设计,
Codeone条形码的数据编码和纠错码词求取的算法实现以及平台支撑核心类——元
素类和面板类的设计与实现.平台经过测试,可以满足条形码生成的需要.
关键词:条形码;二维条形码;Codeone
中图分类号:TP391.1文献标识码:A
DesignandImplementationofCodeonebarcode-makingplatform
HEBin,TONGLi—juan
(DepartmentofComputerScience&.gInstituteofMachinery,)
Abstract:Generally,specializedbarcodeprintergeneratesbarcode,however,Barcodeprinter
dthese shortcomings,acodeonebarcodemakingplatformbasedonobjectorientedtechnologyofJa—
—thmofdataencodingander—
rorcorrectingcodegeneratingofCodeonebarcodeandtheimplementationofkernelclass:el—
beentested,theplatformcanmeettheneed
ofgeneratingdifferentbarcodes.
Keywords;barcode;two-dimensionbarcode;Codeone
条形码技术是在计算机的应用实践中产生和发展起来的一种自动识别技术,它包括有关
标准的制定,条形码编码,条形码印制,条形码识别,条形码译码,条形码解码等技术.其中,一
维条形码由一组平行且黑白相间的条空组成,印制在纸张等介质上,具有输入速度快,易于识
别,成本低廉和可靠性强等特点,因而发展迅速,应用广泛.
但是,随着条形码的应用领域的不断拓展,在一定面积上的信息量有了更高的要求.为了
更好的满足新的应用需求,二维条形码便应运而生,代表性的二维条形码有PDF417,Code
one,QRCode,Code16K,Matrix等.本文以Codeone条形码为例论述条形码生成平台的设
计与实现.
收疆日期:2003—09—25
基金项目:黑龙江自然科学基金资助项目[F98--01]
作者简介:贺斌(1976一),男,陕西西安人,北京机械工业学院计算机及自动化系硕士研究生,主要从事Codeone条形码
技术的研究.
56北京机械工业学院第l9卷 1Codeone条形码技术简介
Codeone条形码是利用图像识别原理,采用新的几何图像和结构设计出的一种新型矩阵
式二维条形码.具有以下特点L1]:
①信息容量大.可以表示2218个数字字母型字符或3550个数字.
②容错能力强.在Codeone条形码符号中27到50的字符用于错误检测和错误纠正.
③译码可靠性高.对损坏条码误读的可能性相当低.如对Code1A是约7000万分之一.
④占用空间小.适合在要求占用空间小的情况下使用,例如用来标识计算机芯片等.
2Codeone条形码生成平台的设计与实现
2.1Codeone条形码生成平台的总体设计
由于Java语言的移植性,动态性等特性有利于平台跨操作系统的实现以及实现后的维护
和升级,因此平台采用Java语言进行构造.下面给出平台的总体设计:
①平台提供可视化的元素编辑和绘制功能,编辑元素分为静态元素和动态元素.其中静态元
素具有自我绘制功能,不具有数据绑定功能,其主要包括直线,长方形,圆,静态文本以及静
态图像;动态元素不仅具有自我绘制的功能,而且具有数据绑定功能,其主要包括动态文本,
动态图像以及条形码.用户可以对选中元素进行元素属性修改,以及元素删除,复制,粘贴
等操作.在元素编辑完成后,用户可以把元素保存为磁盘文件.
②平台提供数据源接口.可以从不同的数据源获取数据为动态元素提供数据绑定支持.这里
数据源主要有数据库(如Oracle,SQLServer数据库等),XML数据源以及表格数据源. ③平台提供与普通打印机的接口.通过平台提供的排版设置模块对输出的元素进行格式设
置,然后通过接口把元素按设置的格式进行输出.
④平台提供与不同条形码的接口,当新的条形码算法程序实现后,可通过此接口完成对相应条
形码的支持.
2.2Codeone条形码的数据编码和纠错码词求取
(1)用户数据编码:Codeone条形码提供了6种不同的编码模式来进行数据编码,这6种模式
分别是ASCII模式,C40模式,十进制模式,文本模式,EDI模式和字节模式,模式的详细介绍
参考文献[1].具体编码算法步骤是,(a)根据用户要求置标志位,例如如果用户数据是EDI
数据,就进入EDI模式进行编码;如果用户数据是图像或二进制文件,就进入字节模式进行编
码;否则进入其它模式进行编码.(b)分析用户数据,如果全是数字,就进入十进制模式进行
编码;如果用户数据是大写字母和数字组成的,就进入C40模式进行编码;如果用户数据是小
写字母和数字组成的,就进入文本模式进行编码;如果用户数据是其它混合型数据,就进入
ASCII模式进行编码.(c)判断生成的码词是否超过相应Codeone条形码版本的符号长度,
如果小于符号长度,用填充字符(129)进行填充;否则截取到符号长度并进行相应的提示.从
而形成数据码词.编码算法的流程图如图1所示].
(2)纠错码词的求取:错误纠正码词生成的算法是用GF(256)运算上的Reed—Solomon算法
求取错误纠正码词].算法思想是用数据码词多项式乘(为Codeone条形码符号字 符
的总数,k为数据码词的个数)后再除以生成多项式g(z)所得的余式.余式的最高项系数为
第1期贺斌等:Codeone条形码生成平台的设计与实现57
第一个错误纠正码词,而零次方项的系数为最后一个错误纠正码词.纠错码词的求取,关键是
求取生成多项式的系数,这里生成多项式为g(z)一(x--2.)(z一2)…(z一2-),其中,.为纠
错码词的个数.g(z)的系数求取算法如下:
g(z)=(z一2.)(z一2)…(z一2一)一+at-1zr_+…+n2+n1z+n0(1)
根据,.+1次多项式和,.次多项式的一般关系形式:
(n+n一1z一+…+n2+n1z+no)(z+6)一n'+(n+n,一1)z+…+(azb+口1)
+(n16+no)z+nob(2)
根据上面的系数关系:从n-一1,no一1开始递推可求取g(z)的系数.程序实现如下:
置用户数据
标志位
分析标志位
其它模式
分析用户数据
EDI模式Il字节模式
大写字母和数字卜写字母和数字
切换到达十进制模式Il切换到c4o模式ll切换到文本模式
其它混合字符
进入ASCII模式
三位数字(000,999)可
以用10住串进行编码
用2个符号字符寸3个大写
字母和敖字数据进行编码 用2个符号字符对3个小写
字母扣数事敏据之f亍编码
e版本
断数据是否剩余?—一
,
/
在当前模式下,根据数据符号
长度处理剩余数据
Unicode转化ASCII
否有剩:一=>—一
2-t"
是否至少剩
镣≮砖/
Y
囝1数据编码漉程图
/*纠错码词生成式(X--fl**O)(x—a**1)(X--fl**2)…(X--fl**(r一1))
gen[o]——低位系数gen[gen.1ength--1]——高位系数
errorNum——纠错码词个数element——GF(256)生成的元素
GFMutiply256——GF(256)乘法运算
GFAdd——GF(256)加法运算*/
军
北京机械工业学院第19卷
publicstaticint[3errorGen256(interrorNum,int[]element)
(
if(errorNum<1)returnnull:
int[]gen—newint[errorNum+1];
int[]genMid=newint[-errorNum~1]; ff初始化
gen[0]一1;gen[1]一1;
//i纠错码词个数
//j多项式系数的个数
for(inti一2;i<一errorNum;i++)
(
genMid[0]一GFMutiply256(gen[-0],element[i],element);
for(intj一1;j<i;j++)
(
genMid[j]一GFAdd(GFMutiply256(gen[-j],element[i],element),gen[j一13>;
}
genMid[i]一1:
gen:(int[-])();
}
returngen;
}
有了生成多项式系数后,可在有限域GF(256)通过竖式除法来求取纠错码词;然后把纠
错码词填到Codeone条形码符号相应的位置.从而形成Codeone条形码码词.
2.3平台的支撑核心类的实现
根据平台总体设计,下面给出平台两个支撑核心类——元素类和面板类的实现.
2.3.1元素类的实现
①元素类的功能分析.元素类应具备的功能要求如下:
(a)一个元素类应该能够描述系统中基本屏幕绘制元素(如直线,Codeone二维条形码
等),即包含基本屏幕绘制元素的所有属性.(b)元素类具有自身属性的编辑的功能,如自身
属性的修改,自我复制等.(c)元素类具有完成自身的绘制功能.
②元素类的类图如图2所示. (a)最上层是Java核心类库中的Object类,它是所有类的基类.为扩展类提供线程,自我
编辑等功能的支持.(b)第二层
是所有元素类的抽象类——Cell
类,此类封装了所有元素类的共
同属性,如元素的标识,元素的状
态等属性.此外,此类还应具有
所有元素类和外界接口的抽象方图2元京类关系图
第1期贺斌等:Codeone条形码生成平台的设计与实现59
法,如绘制方法等.(c)最底层是所有元素类.具有描述元素自身的私有属性和方法.如Cir—
cleCell类描述一个圆,具有私有属性圆心和半径等.(d)二维条形码Barcode类.此类作为一
个特殊的元素类.它封装了Codeone二维条形码的基本参数,编码参数和纠错参数,编码方
法以及纠错方法等.基本参数包括Codeone二维条形码的版本号,尺寸模式,绘图模式以及
旋转角度;编码参数包括用户数据,数据码词长度和编码后的位串;纠错参数包括纠错码词长
度和纠错后的位串.编码方法和纠错方法用于生成数据码词和纠错码词.
③元素类的Java语言实现[5]:元素类的实现采用Java的内部类机制中的静态内部类(Java
内部类详细介绍可以参考文献[53).具体实现是通过先定义一个外部EditElement类,然后
按上面元素类的继承关系再定义抽象静态Cell内部类,接着在把具体元素类定义为相应的静
态内部类.这样就完成整个元素类的内部类实现.采用静态内部类可以避免为每个具体元素 类都生成一个文件造成文件个数太多,可以使元素类整体上有良好的封装性和扩充性,同时有
利于平台的调试和升级.元素类的Java程序如下:
classEditElement
(//所有子类的基类Cell
staticabstractclassCell
{//共同的属性
publicStringid;
publicStringname;
publicRectangler;
//基类的抽象方法
publicabstractvoiddraw(Graphicsg);
publicabstractvoidprint(Graphicsg);
//所有元素类的共用方法
}
//Line类的实现
staticclassLineCellextendsCell
{
//Line的一些私有属性
publicintlineStyle;//线的风格
publicintlinewidth;//线宽
//abstract方法的实现
publicvoiddraw(Graphicsg)
{
ne(g,r.X,r.Y,r.x+r,width,r.y+,
foreColor,lineStyle,lineWidth);
60北京机械工业学院第19卷
) //其它的继承类的实现.
)
2.3.2面板类的实现
①面板类的功能分析.面板类是用户可视化操作的支撑类.应具有以下几个功能:(a)接收
用户的操作事件,并对这些事件进行处理.(b)具有容器的功能,能够存放生成的元素对
象和修改了属性的元素对象.(c)具有对所有元素类的绘制功能,即在用户事件处理完成
后,能够自动对相应的元素对象进行绘制.
②面板类的实现.JComponent类是Java的Swing轻量组件的基类.它为其扩展类提供了
大量的基本功能.因此,CellPanel类扩展此类来继承其相应的功能,并且通过实现Ac—
tionListener,keyListener,MouseListener和MouseMotionListener接口来完成用户事件
的处理.此外CellPanel类还维护一个
Vector类的实例引用,用它来完成对元素
对象的存放.最后通过重载Jcomponent
类的PaintComponent方法实现在用户事
件处理完成后对相应的元素对象的绘制.
面板类关系如图3所示.
3结束语
一
至三
[习
臣雪
E''竺竺:::==j图3CellPanel类关系图
在欧洲,美国,Codeone条形码已经开始 应用于汽车及电子产品组装中.同时,国际自动识别设备制造商协会和美国标准协会已经制
定了一些二维条形码的标准,如49,PDF417标准.我国也已于1998年制定
了PDF417的国家标准,并且随着二维条形码携带数据量的增加以及相关标准的制定,将会促
进我国服务行业的发展,同时也会促进其他行业的发展.
参考文献:
[11矫云起,张成海.二维条码技术[M].北京:中国物价出版社,1996.
[2]李金哲,朱俊英.每形码技术应用rM1.沈阳:辽宁科学技术出版社,1991.
[-31薛红,薛军之,邹彦卿.二维条码在车辆管理系统中的应用研究[J].计算机工程,2002,
28(6):2儿一2l3.
[41王育民,王新梅.差错控制编码基础和应用[M].北京:人民邮电出版社,1986.
[5]DavidMGeary(着).Java2核心技术卷I:原理[M].马欣民,王兴民,龚尧莞,等译.北京:
机械工业出版社,2002.
[6](着).Java2图形设计卷IIswing[M1.李建森,蒋欣军,王兴军,等译.北
京:机械工业出版社,2000.