




已阅读5页,还剩42页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
. . . .电子设计报告书交通灯控制器一、实验目的: 1掌握时序逻辑电路的设计方法,灵活运用理论知识。 2提高学生的数字系统设计能力和实际动手能力。 3进一步了解如何将数字电路设计应用到自动控制系统中,从而提高解决实 际问题的能力。 4为学习和使用计算机打下良好的基础。二、实验内容: 用中小规模逻辑器件设计交通灯控制电路。三、实验要求: 1设计一个十字路口的交通灯控制电路,要求东西方向和南北方向车道两 条交叉道路上的车辆交替运行。在十字路口的两个方向上各设一组红、黄、 绿灯,(图1)。红灯表示禁止通行,绿灯表示可以通行。 2设置一组数码管,以倒计时的方式显示允许通行或禁止通行时间,其中一 个方向上绿亮的时间是20s,另一个方向上绿灯亮的时间是30s,黄灯亮 的的时间都是5s。 3当任何一个方向出现特殊情况,按下手动开关,其中一个方向常通行,倒 计时停止。当特殊情况结束后,按下自动控制开关,恢复正常状态。倒计数计时器绿灯黄灯红灯红 黄 绿灯 灯 灯 图1四、实验所用的器材:主要芯片 数量/个其他器材数量/个74LS1613数码管274LS482二极管674LS043限流电阻374LS0014.7uF电容174LS0810.01uF电容1555定时器1150k电阻 174LS7414.7k电阻174LS1391主要芯片 数量/个其他器材数量/个74LS1613数码管274LS482二极管674LS043限流电阻374LS0014.7uF电容174LS0810.01uF电容1555定时器1150k电阻 174LS7414.7k电阻174LS1391交通灯控制系统主要由控制器、译码器和秒脉冲信号发生器等器件组成。其系统框图如图2。秒脉冲发生器是该系统中定时器和控制器的标准时钟信号源,译码器输出两组信号灯的控制信号,经驱动电路后驱动信号灯工作,控制器是系统的主要部分,由它控制译码器的工作。秒脉冲发生器控制器译码器定时器主干道信号灯支干道信号灯图2 交通灯控制系统的原理框图 时钟信号产生电路主要由555定时器组成震荡器,产生稳定的脉冲信号,送到状态产生电路,状态产生电路根据需要产生一定的“0” 、“1 ”信号。这些信号通过时间显示电路转化成时间信号,在通过数码管显示时间。同时这些信号通过交通灯显示电路转化成6个独立的交通灯信号,用二极管代替交通灯,实现红绿黄灯之间的转换。根据设计主、支干道信号一次循环需要60个信号,所以用2个74LS161级联实现,U1代表低位芯片,U2代表次高位芯片,取反码容易实现后面的时间显示代码,以进行倒计时,其真值表如图所示。 D3D2D1D0,d3d2d1d0分别为7LS161高、低位输入信号.“0”为低电平,“1”为高电平,二极管在高电平的时发光,低电平的时不发光。序号状态U2 U1时间计数支干道主干道D3D2D1D0D3d2d1d0绿黄红绿 黄红 01001101 011029100001021101 011128100001031101 100027100001041101 100126100001051101 101025100001:111110 011019100001121110 011118100001 :211111 011009100001221111 011108100001: :271111 110003100001281111 110102100001291111 111001100001301111 11110010000131011111 101104010001321111 110003010001331111 11010201000134 1111 111001010001351111 1111000 1000136111110 0110 19001100371110 011118001100: :461111 011009001100: : : :531111 110102001100541111 111001001100551111 1111 00 0 0110056101111 101104001010571111 110003001010581111 110102001010591111 111001001010601111 111100001010五、功能实现:(1)时钟信号发生器:通过555芯片按一定的线路接上不同的电阻和电容就可产生周期不同的方波脉冲,即不同的频率脉冲。课程设计需要秒脉冲,利用的2个电容,2个电阻,产生稳定的“秒”脉冲(f=1Hz)信号,确保整个电路装置同步工作和实现定时控制。 (2)计时器:设计要求对不同的状态维持的时间不同,而且要以十进制倒计时显示出来。用两个74LS161完成计时器状态产生模块设计。设计思路:要以十进制输出,而又有一些状态维持时间超过10秒,用两个74LS161分别产生个位和十位的数字信号。显然,计数器能够完成计时功能,我们可以用74LS161设计,并把它的时钟cp接秒脉冲。74LS161计数器是采用加法计数,要想倒计时,则在74LS161输出的信号必须经过非门处理后才能接入数码管的驱动74LS48,而在显示是最好以人们习惯的数字0-9显示计时,故在设计不同模值计数器确定有效状态时,以0000,0001,0010-1111这些状态中靠后的状态为有效状态。例如:有效状态10111100110111101111取非 01000011001000010000即 4-3-2-1-0 实现模5的倒计时。在将74LS161改装成其他模值时既可以采用同步清零法,也可采用异步置数法,但0000不可能为有效状态,所以采用异步置数法完成不同模值转化的实现。首先对控制个位输出的74LS161设计按要求对系统的状态不同,即红绿灯的状态不同,个位的进制也就要求不同。用系统的状态量Q1,Q0控制74LS161的置数端D0D1D2D3。当系统处在Gr或Rg状态时,个位的进制是十(模10),即逢十进一,当系统处在Yr或Ry状态时,个位的进制是五(模5),即逢五进一,模10时,有效状态为0110,0111,1000,-1111,置D3D2D1D0为0110,模5时有效状态为1011,1100,1101,1110,1111,置D3D2D1D为1011,由此有,Q1Q0D3D2D1D0000110011011100110111011所以,D3=D0=Q0,D2=Q0 ,D1=1 当状态为1111时,74LS161的状态必须跳到进入下一个循环,此时进位输出为1,我们可以把它的CO非接入置数端LD。再对控制十位输出的74LS161设计同设计控制个位输出的74LS161基本类似,用系统状态量Q0Q1控制十位74LS161的置数端D3D2D1D0。当系统处于Gr状态时置D3D2D1D0为1101,当系统处于Yr或Ry时置D3D2D1D0为1111,当系统处于Rg时置D3D2D1D0为1110,有,Q1Q0D3D2D1D0001101011111101110111111故,D3=D2=1 D1=(Q1Q0) D0=(Q1Q0)同理我们将CO2非接入置数端LD对一些级联的处理当计数超过10秒时,个位需向十位进位,此时十位计数,其它时间其保持不变,当个位需进位,C01变为1,把个位的CO1置入十位的CP2。即完成一次循环,十位开始计数,其他时刻CO1=0,CP2=0,十位保持。设计时把CO1,CO2的分别接入主控电路的ENT端,ENP端。当完成一次计时,个位和十位同时完成循环,此时CO1=CO2=1,系统跳到下一个状态,红绿灯转换,计时器开始下一次计时。(3)主控制器:根据计时器送来的信号,保持或改变电路的状,以实现对主,支干道车辆运行状态的控制。(4)译码驱动电路:按照主控制器所处的状态进行译码,再驱动响应的信号灯,指挥主,支干道的行人和车辆。六、总电路图:七、设计中遇到的问题和实验心得:在这次课程设计中,我遇到了一些问题,也学会了很多关于数字电路的东西,并对所用器件有了更深入的认识。首先,为了使线路简单在安装之前要对芯片的位置布置作一下分析,才开始连接。并按照电路进行合理的布置器件,另外,在调试过程中,要学会使用仪器去检测电路,刚开始我很快就将线认真的连好,但没有出现结果,我再用表去测电路,并找出了问题所在。其次,使我感悟最深的是数字电路设计需要的不仅是深厚的知识功底和严谨认真的科学态度,更要有坚忍不拔的毅力和勇于探索的勇气。只有对所有的器件有很好的了解之后才能去选择正确的器件设计电路。好的电路设计不仅要求正确,而且要最简单,尽量在功能齐全的前提下减少所用器件的数量。另外,最好是接好一个模块后通电检测,有问题就检查修改电路,直到这一模块正常再对下一个模块接线。布线完成后,基本上可能不会一次性成功,接下来就该调试电路,这是一个很重要的环节。结果错误的可能原因有很多,可能是设计本身或是接线问题或接触问题,也可能是所用器件问题,我碰到的问题首先是电路图的问题,有一根线连错,更正后,出现了正常效果。 最后,我认识到态度要端正,作风要严谨。对数字电路来说,逻辑性非常强,每一个环节都要弄得清清楚楚,有一点漏洞,结果都不可能出来。以上是我完成数字电路课程设计后的一些心得体会。附录(参考文献): 1、数字电路逻辑设计(脉冲与数字电路 第三版) 王疏银 主编 高等教育出版社 2、数字电路实验指导书(西安邮电学院电子与信息工程系) 张亚婷 王利 杨乐 周丽娟 郭华编Java程序设计课程设计报告题目:小小画图板开发目录一:程序设计的目的和意义二:程序设计: (一):程序基本组成框架和结构 (二):画图板相关操作三:系统功能设计分析四:程序结构说明五:程序绘图效果示意图六:程序源代码及其分析说明七:参考文献小小画图板开发一 :程序设计的目的和意义用过微软Windows操作系统的人一定都对Windows自带的画图板非常的熟悉。同图像处理软件界的“大哥大”Photoshop比起来,它虽然不及Photoshop的功能强大、内容丰富,但是作为Windows一直以来都内带的附件程序,它具有小巧玲珑、简单实用等其它绘图软件所不具备的优点。同时它的风格也被许多其它绘图软件所效仿。通过本绘图程序的编写,我们可以看到如何运用自己已经掌握的知识,自己动手来完成一个Java绘图程序,通过整个流程的熟悉以及对程序组织结构和框架的理解,也可以极大的促进我们对Java程序和面向对象程序设计的认识和掌握。通过本次课程的学习,我们可以更加系统地学习和了解如何从整体上设计和实现一个程序,这对我们今后学习、开发和设计更大更复杂的程序有着很大的帮助。二 :程序设计本程序完成的是一个类似于Windows画图板的绘图程序。由于不是开发和设计专业的绘图和图像制作软件,所以,完成的程序的简单功能包括以下几项:1. 新建一个空白图形文件:用于绘制新的图形。2. 打开或保存一个图形文件,便于对图形文件的管理。3. 绘制一些基本的画图组件:直线、矩形、实心矩形、椭圆、实心椭圆、圆、实心圆、圆角矩形、实心圆角矩形等。4. 可以用鼠标在绘图面板上单击拖动进行随笔画。5. 橡皮擦:可以将已绘制好的图形擦掉。6. 添加文字:可以在绘图区域内添加文字。7. 选择文字的字体:通过一个下拉式的选择条,可以选中所需要的字体。本程序中包括:宋体、隶书、华文彩云、仿宋_GB2312、华文行楷、方正舒体、Times New Roman、Serif、Monospaced、SonsSerif、Garamond。当然,在下面的的程序分析中可以看到,由于我们灵活设置了字体数组,是的可以随意添加系统支持的任何字体。大大方便和简化了程序设计。8. 选择文字的字体风格:通过两个复选框按钮,可以选择需要的字体风格,包括:粗体、斜体,使用者有三种选择方式,包括:同时选中两者、只选择其中一种、两者都不选中。9. 设置画笔的颜色:可以选择当前绘制图形的画笔颜色,让图形更加丰富多彩、生动活泼。10. 设置画笔的粗细:该选项在作用于基本图形组件和文字时,它的效果是不一样的。当作用于绘制图形组件时,它的作用是改变画笔绘制线条的粗细;当作用于文字时,它的作用是改变文字的大小。由此可以看到,虽然我们的画图板程序不及那些专业的绘图程序,但是,“麻雀虽小,五脏俱全”,它已经具备了一个绘图软件所应该有的基本功能和操作。通过对本程序的分析,我们可以更加系统地学习和了解如何从整体上设计和实现一个程序。(一):程序基本组成框架和结构1. 一组基本图形按钮,包括:Pencil(随笔画)、Line(直线)、Rect(矩形)、FRect(实心矩形)、Oval(椭圆)、FOval(实心椭圆)、Circle(圆)、FCircle(实心圆)、RoundRect(圆角矩形)、FrRect(实心圆角矩形)、Rubber(橡皮擦)、Word(文字)。这些基本图形都继承于同一个父类:drawings。drawings 具有变量(属性):int x1,x2,y1,y2; /用来存放相应图形元素的坐标int R,G,B; /用来存放图形色彩颜色信息float stroke; /用来存放画笔粗细int type; /用来保存图形类型String s1; /用来保存输入文字字符串String s2; /用来保存字体类型字符串同时,drawing还具有方法:void draw ( Graphics2D g2d ) ;draw()方法中用到了Java绘图里面的Graphics2D类,所有继承drawings类的图形子类都重写了此方法。这就是Java程序中类的继承的概念。它对于程序代码的重用是很重要的,将极大的方便和简略程序代码。2. 此外,程序中还包括一下三个基本操作按钮: 新建(New):新建一个图形文件。 打开(Open):打开一个图形文件。 保存(Save):保存当前图形文件。3. 选择颜色和设置当前画笔粗细的按钮分别为:颜色(Color)、线条粗细(Stroke)。4. 选择当前字体风格的选择框为:粗体(BOLD)、斜体(ITALIC),用以设置当前字体的风格。5. 选择当前字体的下拉式复选框为:Styles。6. 菜单条及其组成: 文件(File)菜单项,包括:New(新建一个图形文件)、Load(打开一个图形文件)、Save(保存当前图形文件)、Exit(退出程序)。 颜色(Color)菜单项:用来设置当前颜色。 线条粗细(Stroke)菜单项:用来设置当前画笔粗细。 帮助(Help)菜单项:有关的程序帮助提示。完成的程序界面效果如下图:(二):画图板相关操作1. 新建一个图形文件单击工具栏上的图标,或选择FileNew菜单,则清除当前所绘制的图像,回到初始画面。2. 打开已有的文件单击工具栏上的图标,或选择FileLoad菜单,则清除当前所绘制的图像,并弹出打开文件对话框要求选择要打开的文件。如下图:3. 保存单击工具栏上的图标,或选择FileSave菜单,则弹出要求保存文件对话框。如下图:4. 绘制基本图形基本图形包括以下几种:Pencil:随笔画,图标为:。Line:直线,图标为:。Rect:矩形,图标为:。FRect:实心矩形,图标为:。Oval:椭圆,图标为:。FOval:实心椭圆,图标为:。Circle:圆,图标为:。FCircle:实心圆,图标为:。RoundRect:圆角矩形,图标为:。FrRect:实心圆角矩形,图标为:。Rubber:橡皮擦,图标为:。绘图时,单击工具栏上相应图形的图标,然后用鼠标拖动,在绘图区域内进行绘图即可。5. 设置画笔大小单击工具栏上的图标,或单击StrokeSet Stroke菜单,则弹出相应的设置当前画笔粗细对话框。如下图:6. 选择颜色单击工具栏区域,或单击ColorChoose Color菜单,则弹出相应的选择当前画图颜色对话框。如下图:7. 选择字体风格在工具栏区域 ,可以选择相应的字体风格,有粗体、斜体和粗斜体三种可供选择。8. 选择字体在工具栏区域,可以选择字体,本程序中有如下几种字体可供选择:宋体、隶书、华文彩云、仿宋_GB2312、华文行楷、方正舒体、Time New Roman、Serif、Monospaced、SonsSerif、Garamond。三 :系统功能设计分析画板主要由以下几个部分组成:1. 主窗体的设计。主类(QingDrawPad)用来生成主界面,完成画图板的主要框架。主类由JFrame派生出来。主界面由菜单栏、工具栏和画图区域三部分组成,布局格式采用BorderLayout布局形式。2. 菜单栏和工具栏的设计。菜单栏包括文件菜单栏、颜色菜单栏、线条粗细菜单栏和提示菜单栏。其中文件菜单栏包括文件的新建、打开、保存等选项;颜色菜单栏可以进行颜色选择;线条粗细菜单栏设置线条的粗细;提示菜单栏给出提示信息。工具栏由新建、打开和保存文件按钮、基本图形的按钮、选择字体风格复选框和字体下拉列表框组成。在主类中添加并对菜单栏和工具栏添加事件监听。3. 事件响应的处理。对菜单栏、工具栏和用鼠标画图的事件响应进行处理。 菜单栏中文件的新建、打开和保存菜单事件的处理:Java把每个文件都视作顺序字节流。如果要在Java中进行文件处理,则必须用到Java.io包。这个包定义了一些流类,选用FileInputStream(从文件中读入数据)和FIleOutputStream(向文件输出数据),通过建立这些文件的对象便可以打开文件。这些流相应地从InputStream和OutputStream派生,这些文件均使用文件流,所以必须将文件结构化以适应程序的要求。我们需要对保存的对象序列化,然后以输出流的方式保存。在程序中用newFile()、loadFile()和saveFile()三个函数分别实现文件的新建、打开和保存。 工具栏事件的处理:主要有一些Button组成。我们用ButtonHandler内部类处理基本单元事件,ButtonHandler1内部类处理新建、打开和保存文件按钮,在画图类DrawPanel中定义CreateNewItem()函数处理工具栏中的画图事件。 鼠标画图:由于画图板主要是用来画图,所以需要在程序中添加对鼠标按下、拖动、进入、退出、移动和单机事件进行监听并进行处理。内部类mouseA定义了完成鼠标按下、松开、进入、退出事件响应。内部类mouseB完成鼠标拖动和移动事件响应。4. 画图的基本功能。在程序设计中用到了动态绑定,我们可以提取他们的公共属性,先建立一个父类,然后建立各个子类,继承父类中的方法并将父类中的draw函数重写。一些关于图形形状的类,最主要是用于画图、字体和橡皮擦等基本类型。如Circle、Triangle、Rectangle,它们都是有超类(Object类)派生的。在面向对象编程中,每个类都有画出自己的能力,每个类都有自己的draw函数,但每种形状的draw函数都不一样,但在绘制任何形状时,只需简单调用父类drawing的draw方法,然后让程序动态地根据对象的类型决定使用哪个子类的draw方法。为了使画出的图形更加美观,我们在draw函数中使用了Graphics2D的对象的引用。这样可以在不改变原程序的情况下,添加扩展的图形,是程序变得更加强大。同时,为了文件的保存,父类实现Serialize接口,将对象线性化。四 :程序结构说明本程序主体为一个文件:QingDrawPad.java。其中包括的程序段有: QingDrawPad():构造函数,用以初始化。 chooseColor():选择当前绘图颜色程序段。 setStroke():设置当前画笔粗细程序段。 loadFile():调用图形文件程序段。 newFile():新建一个图形文件程序段。 saveFile():保存当前所绘制图形程序段。 creatNewItem():新建一个基本图形单元程序段。相应的内部类有: ButtonHandler:用来处理基本图形单元的按钮事件。 ButtonHandler1:用来处理New、Open、Save三个操作按钮的按钮事件。 DrawPanel:用来创建绘图区域的子类。 MouseA:继承了MouseAdapter,用来完成鼠标相应事件的操作,如单击、松开、进入和离开等。 MouseB:继承了MouseMotionAdapter,用来完成鼠标拖动和鼠标移动的相应事件操作。此外,还继承了父类drawings的基本图形子类,如前所述,这里不再重复。五 :程序绘图效果示意图我们可以看到,整个程序界面很简洁,而且界面操作、提示内容全部是中文,一目了然。在左上方的菜单栏里有文件、颜色、线条粗细、帮助4个下拉式菜单,可以对绘图文件进行相应的操作。下面一排是工具栏的工具按钮,从左到右依次为:新建文件、打开文件、保存文件、随笔画、直线、空心矩形、实心矩形、空心椭圆、空心圆、实心圆、空心圆角矩形、实心圆角矩形、橡皮擦、颜色选择按钮、线条粗细设置按钮、文字添加按钮、粗体字体选择框、斜体字体选择框、字体选择下拉式选择框。整个工具栏是可以拖动的,可以将它拖动到程序窗口的任意位置。工具栏下面的整个白色区域就是绘图区域,即绘图面板,它的大小可以随着窗口的大小自动调整。在窗口的最底部是程序设计作者标注,以及鼠标状态提示条,可以显示当前的鼠标状态,包括进出窗口、移动、单击、松开等。具体效果如下列图所示: 六 :程序源代码及其分析说明/*File name : QingDrawPad (卿画板)Copyright by : Ken (吴斌伟)Direct by : 郭成Dept : 厦门理工学院 数理系 09级 信息与计算科学1班Date :2011.01.11Version :建发2011*/package WuDrawPad;import java.awt.*;import java.awt.geom.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.*;public class QingDrawPad extends JFrame /主类,扩展了JFrame类,用来生成主界面 private ObjectInputStream input; private ObjectOutputStream output; /定义输入输出流,用来调用和保存图像文件 private JButton choices; /按钮数组,存放以下名称的功能按钮 private String names = New, Open, Save, /这三个是基本操作按钮,包括新建、打开、保存 /*下面是我们的画图板上面有的基本的几个绘图单元按钮*/ Pencil, Line, Rect, FRect, Oval, FOval, Circle, FCircle, RoundRect, FrRect, Rubber, Color, Stroke, Word ; private String styleNames= 宋体 , 隶书 , 华文彩云 , 仿宋_GB2312 , 华文行楷 , 方正舒体 , Times New Roman , Serif , Monospaced , SonsSerif , Garamond ; private Icon items; private String tipText= /这里是鼠标移动到相应按钮上面上停留时给出的提示说明条 新建一个文件, 打开一个文件, 保存当前文件, 绘制线条, 绘制直线, 绘制空心矩形, 绘制实心矩形, 绘制空心椭圆, 绘制实心椭圆, 绘制空心圆形, 绘制实心圆形, 绘制空心圆角矩形, 绘制实心圆角矩形, 橡皮擦, 选择颜色, 设置线条粗细, 输入文字 ; JToolBar buttonPanel ; /定义按钮面板 private JLabel statusBar; /显示鼠标状态的提示条 private DrawPanel drawingArea; /画图区域 private int width=850,height=550; drawings itemList=new drawings5000; /用来存放基本图形的数组 private int currentChoice=3; /设置默认画图状态为随笔画 int index=0; /当前已经绘制的图形数目 private Color color=Color.black; /当前画笔颜色 int R,G,B; /用来存放当前色彩值 int f1,f2; /用来存放当前字体风格 String style1; /用来存放当前字体 private float stroke=1.0f; /设置画笔粗细,默认值为1.0f JCheckBox bold,italic; /bold为粗体,italic为斜体,二者可以同时使用 JComboBox styles; public QingDrawPad() super(卿乐绘图画板(中国风); JMenuBar bar=new JMenuBar();/定义菜单条 JMenu fileMenu=new JMenu(文件); /fileMenu.setMnemonic(F);/新建文件菜单条 JMenuItem newItem=new JMenuItem(新建); newItem.addActionListener( new ActionListener() public void actionPerformed(ActionEvent e) newFile();/如果被触发,则调用新建文件函数段 ); fileMenu.add(newItem);/保存文件菜单项 JMenuItem saveItem=new JMenuItem(保存); saveItem.addActionListener( new ActionListener() public void actionPerformed(ActionEvent e) saveFile();/如果被触发,则调用保存文件函数段 ); fileMenu.add(saveItem);/打开文件菜单项 JMenuItem loadItem=new JMenuItem(打开); loadItem.addActionListener( new ActionListener() public void actionPerformed(ActionEvent e) loadFile();/如果被触发,则调用打开文件函数段 ); fileMenu.add(loadItem); fileMenu.addSeparator();/退出菜单项 JMenuItem exitItem=new JMenuItem(退出); exitItem.addActionListener( new ActionListener() public void actionPerformed(ActionEvent e) System.exit(0);/如果被触发,则退出画图板程序 ); fileMenu.add(exitItem); bar.add(fileMenu);/设置颜色菜单条 JMenu colorMenu=new JMenu(颜色);/选择颜色菜单项 JMenuItem colorItem=new JMenuItem(选择颜色); colorItem.addActionListener( new ActionListener() public void actionPerformed(ActionEvent e) chooseColor();/如果被触发,则调用选择颜色函数段 ); colorMenu.add(colorItem); bar.add(colorMenu);/设置线条粗细菜单条 JMenu strokeMenu=new JMenu(线条粗细);/设置线条粗细菜单项 JMenuItem strokeItem=new JMenuItem(设置线条粗细); strokeItem.addActionListener( new ActionListener() public void actionPerformed(ActionEvent e) setStroke(); ); strokeMenu.add(strokeItem); bar.add(strokeMenu);/设置提示菜单条 JMenu helpMenu=new JMenu(帮助);/设置提示菜单项 JMenuItem aboutItem=new JMenuItem(关于画板); aboutItem.addActionListener( new ActionListener() public void actionPerformed(ActionEvent e) JOptionPane.showMessageDialog(null, 卿乐画板n作者:吴斌伟n指导教师:郭成n于2011年1月11日,厦门理工学院 数理系 实验楼4#416 , 画图板说明 , JOptionPane.INFORMATION_MESSAGE ); ); helpMenu.add(aboutItem); bar.add(helpMenu); items=new ImageIconnames.length;/创建各种基本图形的按钮 drawingArea=new DrawPanel(); choices=new JButtonnames.length; buttonPanel = new JToolBar( JToolBar.VERTICAL ) ; buttonPanel = new JToolBar( JToolBar.HORIZONTAL) ; ButtonHandler handler=new ButtonHandler(); ButtonHandler1 handler1=new ButtonHandler1();/导入我们需要的图形图标,这些图标都存放在与源文件相同的目录下面 for(int i=0;ichoices.length;i+) itemsi=new ImageIcon(namesi + .gif); choicesi=new JButton(,itemsi); choicesi.setToolTipText(tipTexti); buttonPanel.add(choicesi); /将动作侦听器加入按钮里面 for(int i=3;ichoices.length-3;i+) choicesi.addActionListener(handler); choices0.addActionListener( new ActionListener() public void actionPerformed(ActionEvent e) newFile(); ); choices1.addActionListener( new ActionListener() public void actionPerformed(ActionEvent e) loadFile(); ); choices2.addActionListener( new Ac
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论