基于pop3与smtp协议的邮件收发程序的开发毕业论文_第1页
基于pop3与smtp协议的邮件收发程序的开发毕业论文_第2页
基于pop3与smtp协议的邮件收发程序的开发毕业论文_第3页
基于pop3与smtp协议的邮件收发程序的开发毕业论文_第4页
基于pop3与smtp协议的邮件收发程序的开发毕业论文_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、设计思想POP3POSTOFFICEPROTOCOL3即邮局协议的第3个版本,它是规定个人计算机如何连接到互联网上的邮件服务器进行收发邮件的协议。它是因特网电子邮件的第一个离线协议标准,POP3协议允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时根据客户端的操作删除或保存在邮件服务器上的邮件,而POP3服务器则是遵循POP3协议的接收邮件服务器,用来接收电子邮件的。POP3协议是TCP/IP协议族中的一员,,由RFC1939定义。本协议主要用于支持使用客户端远程管理在服务器上的电子邮件。POP3是TCP/IP协议族中的一员,由RFC1939定义。本协议主要用于支持使用客户端远程管理在服务器上的电子邮件。提供了SSL加密的POP3协议被称为POP3S。POP协议支持“离线”邮件处理。其具体过程是邮件发送到服务器上,电子邮件客户端调用邮件客户机程序以连接服务器,并下载所有未阅读的电子邮件。这种离线访问模式是一种存储转发服务,将邮件从邮件服务器端送到个人终端机器上,一般是PC机或MAC。一旦邮件发送到PC机或MAC上,邮件服务器上的邮件将会被删除。但目前的POP3邮件服务器大都可以“只下载邮件,服务器端并不删除”,也就是改进的POP3协议。脱机模型即不能在线操作,POP不支持对服务器邮件进行扩展操作,此过程需要更高级的IMAP4协议来完成。支持POP协议使用ASCII码来传输数据消息,这些数据消息可以是指令,也可以是应答。SMTP目前已是事实上的在INTERNET传输EMAIL的标准,是一个相对简单的基于文本的协议。在其之上指定了一条消息的一个或多个接收者(在大多数情况下被确定是存在的),然后消息文本就传输了。可以很简单地通过TELNET程序来测试一个SMTP服务器,SMTP使用TCP端口25。要为一个给定的域名决定一个SMTP服务器,需要使用MXMAILEXCHANGE)DNS。在20世纪80年代早期SMTP开始被广泛地使用。当时它只是作为UUCP的补充,UUCP更适合于处理在间歇连接的机器间传送邮件。相反SMTP在发送和接收的机器始终都联网的情况下工作得最好。SMTP独立于特定的传输子系统,且只需要可靠有序的数据流信道支持。SMTP重要特性之一是其能跨越网络传输邮件,即“SMTP邮件中继”。通常,一个网络可以由公用因特网上TCP可相互间访问的主机、防火墙分隔的TCP/IP网络上TCP可相互访问的主机,以及其他LAN/WAN中的主机利用非TCP传输层协议组成。使用SMTP,可实现相同网络上处理机之间的邮件传输,也可通过中继器或网关是实现某处理机与其他网络之间的邮件传输。在SMTP这种方式下,邮件的发送可能经过从发送端到接收端路径上的大量中间中继器或网关主机。域名服务系统DNS的邮件交换服务器可以用来识别出传输邮件的下一跳IP地址。SENDMAIL是最早实现SMTP的邮件传输代理之一。到2001年至少有50个程序将SMTP实现为一个客户端(消息的发送者)或一个服务器(消息的接受者)。一些其他的流行的SMTP服务器包括PHILIPHAZEL的EXIM,IBM的POSTFIX,DJBERNSTEIN的QMAIL,以及MICROSOFTEXCHANGESERVER由于这个协议开始是基于纯ASC文本的,在二进制文件上处理得并不好。后来开发了用来编码二进制文件的标准,如MIME,以使其通过SMTP来传输。今天,大多数SMTP服务器都支持8位MIME扩展,它使二进制文件的传输变得几乎和纯文本一样简单。二、算法流程图本程序的核心算法流程图如下图所示图1程序算法流程图三、源代码PACKAGEFRAMEIMPORTJAVAAWTDIMENSIONIMPORTJAVAAWTTOOLKITIMPORTJAVAAWTEVENTACTIONEVENTIMPORTJAVAAWTEVENTACTIONLISTENERIMPORTJAVAAWTEVENTITEMEVENTIMPORTJAVAAWTEVENTITEMLISTENERIMPORTJAVAXSWINGJBUTTONIMPORTJAVAXSWINGJCOMBOBOXIMPORTJAVAXSWINGJFRAMEIMPORTJAVAXSWINGJLABELIMPORTJAVAXSWINGJOPTIONPANEIMPORTJAVAXSWINGJPASSWORDFIELDIMPORTJAVAXSWINGJTEXTFIELDIMPORTUTILSCHECKNEWMAILIMPORTUTILSEDITORUTILSIMPORTACTIONLOGINACTION/登录页面/PUBLICCLASSLOGINFRAMEEXTENDSJFRAMEIMPLEMENTSACTIONLISTENER,ITEMLISTENERPRIVATESTATICFINALLONGSERIALVERSIONUID1LPRIVATEJCOMBOBOXPOP3CB/收邮件服务器下拉列表PRIVATEJCOMBOBOXSMTPCB/发邮件服务器下拉列表PRIVATEJTEXTFIELDNAMETFPRIVATEJPASSWORDFIELDPASSWORDTFPRIVATEJBUTTONLOGINBUTTONNULL,RESETBUTTONNULLPRIVATESTRINGUSERNAMENULL,PASSWORDNULL,POPHOSTNULL,SMTPHOSTNULL/SMTP服务器PRIVATEJPROGRESSBARFRAMEPROGRESSBARNULL/进度条实例PUBLICLOGINFRAMESUPERTHISSETICONIMAGEEDITORUTILSCREATEICON“EMAILPNG“GETIMAGEGETCONTENTPANESETLAYOUTNULLJFRAMEVALIDATESETTITLE“登录邮箱“JLABELBACKGROUNDLABELNEWJLABELBACKGROUNDLABELSETBOUNDS0,0,768,540BACKGROUNDLABELSETTEXT“BACKGROUNDLABELSETLAYOUTNULLFINALJLABELSMTPLABLENEWJLABELSMTPLABLESETTEXT“SMTP服务器“SMTPLABLESETBOUNDS230,203,100,18BACKGROUNDLABELADDSMTPLABLEFINALJLABELPOP3LABELNEWJLABELPOP3LABELSETTEXT“POP3服务器“POP3LABELSETBOUNDS230,243,100,18BACKGROUNDLABELADDPOP3LABELFINALJLABELNAMELABELNEWJLABELNAMELABELSETTEXT“邮箱名称“NAMELABELSETBOUNDS230,283,100,18BACKGROUNDLABELADDNAMELABELFINALJLABELPASSWORDLABLENEWJLABELPASSWORDLABLESETTEXT“密码“PASSWORDLABLESETBOUNDS230,323,100,18BACKGROUNDLABELADDPASSWORDLABLE/发件箱服务器地址列表STRINGSMTPADD“SMTP163COM“,“SMTP126COM“,“SMTPYEAHNET“,“SMTPQQCOM“,“SMTPSINACOM“,“SMTPSOHUCOM“,“SMTP139COM“,“SMTPMAILYAHOOCN“,“SMTPSOGOUCOM“,“SMTPTOMCOM“,“SMTP189CN“,“SMTPLIVECOM“,“SMTPGMAILCOM“,“SMTP21CNCOM“,“SMTP188COM“SMTPCBNEWJCOMBOBOXSMTPADDSMTPCBSETSELECTEDINDEX0SMTPCBSETEDITABLETRUESMTPCBADDITEMLISTENERTHISSMTPCBSETBOUNDS370,203,150,22BACKGROUNDLABELADDSMTPCB/收件箱服务器地址列表STRINGPOP3ADD“POP163COM“,“POP126COM“,“POPYEAHNET“,“POPQQCOM“,“POPSINACOM“,“POP3SOHUCOM“,“POP139COM“,“POPMAILYAHOOCN“,“POP3SOGOUCOM“,“POPTOMCOM“,“POP189CN“,“POP3LIVECOM“,“POPGMAILCOM“,“POP21CNCOM“,“POP188COM“POP3CBNEWJCOMBOBOXPOP3ADDPOP3CBSETSELECTEDINDEX0POP3CBADDITEMLISTENERTHISPOP3CBSETEDITABLETRUEPOP3CBSETBOUNDS370,243,150,22BACKGROUNDLABELADDPOP3CBNAMETFNEWJTEXTFIELDNAMETFSETBOUNDS370,283,150,22BACKGROUNDLABELADDNAMETFPASSWORDTFNEWJPASSWORDFIELDPASSWORDTFSETBOUNDS370,323,150,22BACKGROUNDLABELADDPASSWORDTFLOGINBUTTONNEWJBUTTON“登录“RESETBUTTONNEWJBUTTON“重置“BACKGROUNDLABELADDLOGINBUTTONBACKGROUNDLABELADDRESETBUTTONLOGINBUTTONSETBOUNDS280,360,80,30RESETBUTTONSETBOUNDS400,360,80,30LOGINBUTTONADDACTIONLISTENERTHISRESETBUTTONADDACTIONLISTENERTHISGETCONTENTPANEADDBACKGROUNDLABELPROGRESSBARNEWJPROGRESSBARFRAMETHIS,“登录“,“登录中,请稍后“RESET/默认初始值PUBLICVOIDJFRAMEVALIDATETOOLKITTKGETTOOLKIT/获得屏幕的宽和高DIMENSIONDIMTKGETSCREENSIZETHISSETRESIZABLEFALSETHISSETBOUNDSDIMWIDTH/2380,DIMHEIGHT/2270,776,574VALIDATETHISSETDEFAULTCLOSEOPERATIONJFRAMEEXIT_ON_CLOSE/登录和重置事件的处理OVERRIDEPUBLICVOIDACTIONPERFORMEDACTIONEVENTEIFEGETSOURCELOGINBUTTON/登录PROGRESSBARSETVISIBLETRUE/设置进度条可见NEWTHREADPUBLICVOIDRUNGETVALUES/得到界面中的所有项的值CHECKUSER/登录验证STARTELSEIFEGETSOURCERESETBUTTON/重置RESET/重新设置各项的值/得到界面中的所有项的值PRIVATEVOIDGETVALUESSMTPHOSTSTRINGSMTPCBGETSELECTEDITEMPOPHOSTSTRINGPOP3CBGETSELECTEDITEMUSERNAMENAMETFGETTEXTTRIMPASSWORDPASSWORDTFGETTEXTTRIM/重新设置各项的值PRIVATEVOIDRESETSMTPCBSETSELECTEDINDEX0POP3CBSETSELECTEDINDEX0NAMETFSETTEXT“55531990QQCOM“PASSWORDTFSETTEXT“QQMIMA“/登录验证PRIVATEVOIDCHECKUSERLOGINACTIONLOGINNEWLOGINACTIONSMTPHOST,POPHOST,USERNAME,PASSWORDIFLOGINISLOGIN/登录成功PROGRESSBARDISPOSENEWCHECKNEWMAILSTART/开始检测新邮件THISDISPOSE/释放本窗口资源NEWMAINFRAMESETVISIBLETRUEELSE/登录失败PROGRESSBARSETVISIBLEFALSEJOPTIONPANESHOWMESSAGEDIALOGTHIS,“登录失败,请检查主机、用户名、密码是否正确“,“警告“,JOPTIONPANEWARNING_MESSAGE/下拉列表改变时的事件处理PUBLICVOIDITEMSTATECHANGEDITEMEVENTEIFEGETSOURCESMTPCBIFEGETSTATECHANGEITEMEVENTSELECTEDELSEIFEGETSOURCEPOP3CBIFEGETSTATECHANGEITEMEVENTSELECTEDPACKAGEFRAMEIMPORTJAVAAWTBORDERLAYOUTIMPORTJAVAAWTDIMENSIONIMPORTJAVAAWTTOOLKITIMPORTJAVAAWTEVENTACTIONEVENTIMPORTJAVAAWTEVENTACTIONLISTENERIMPORTJAVAAWTEVENTCOMPONENTADAPTERIMPORTJAVAAWTEVENTCOMPONENTEVENTIMPORTJAVAAWTEVENTMOUSEEVENTIMPORTJAVAAWTEVENTMOUSELISTENERIMPORTJAVABEANSPROPERTYVETOEXCEPTIONIMPORTJAVAXSWINGJBUTTONIMPORTJAVAXSWINGJDESKTOPPANEIMPORTJAVAXSWINGJFRAMEIMPORTJAVAXSWINGJINTERNALFRAMEIMPORTJAVAXSWINGJLABELIMPORTJAVAXSWINGJLISTIMPORTJAVAXSWINGJMENUIMPORTJAVAXSWINGJMENUBARIMPORTJAVAXSWINGJMENUITEMIMPORTJAVAXSWINGJPANELIMPORTJAVAXSWINGJPOPUPMENUIMPORTJAVAXSWINGJSCROLLPANEIMPORTJAVAXSWINGJSPLITPANEIMPORTJAVAXSWINGJTREEIMPORTJAVAXSWINGTREEDEFAULTMUTABLETREENODEIMPORTUTILSCLASSNAMETREECELLRENDERERIMPORTUTILSEDITORUTILSIMPORTUTILSFRAMEFACTORYIMPORTUTILSREADLINKMANXMLIMPORTUTILSRECEIVEMAILTABLEPUBLICCLASSMAINFRAMEEXTENDSJFRAMEIMPLEMENTSACTIONLISTENER,MOUSELISTENERPRIVATESTATICFINALLONGSERIALVERSIONUID1LPRIVATESTATICJDESKTOPPANEDESKTOPPANENULL/用于创建多文档界面或虚拟桌面的容器PUBLICSTATICMAINFRAMEMAINFRAMEPRIVATEJTREETREE/树形图PRIVATEJLISTJL/联系人列表PRIVATEJPANELPANEL,PANELFRAME/PANELFRAME左半部界面PRIVATEJLABELLABELBACKGROUNDPRIVATEJSCROLLPANESCROLLPANEPRIVATEJMENUITEMEXITMINULL,NEWMAILMINULL,SENDEDMINULL,RECEIVEMINULL,RECYCLEMINULL,REFRESHMINULLPRIVATEJBUTTONADDLINKMANBUTTONNULL/添加联系人按钮PRIVATEJMENUMAILMENUNULLPRIVATEREADLINKMANXMLREADLINKMANNULL/初始化界面配置PUBLICVOIDJFRAMEVALIDATETOOLKITTKGETTOOLKIT/获得屏幕的宽和高DIMENSIONDIMTKGETSCREENSIZETHISSETBOUNDSDIMWIDTH/2420,DIMHEIGHT/2350,850,678VALIDATETHISSETDEFAULTCLOSEOPERATIONJFRAMEEXIT_ON_CLOSEPUBLICMAINFRAMESUPER“电子邮件“MAINFRAMETHISTHISSETICONIMAGEEDITORUTILSCREATEICON“EMAILPNG“GETIMAGEDESKTOPPANENEWJDESKTOPPANEJFRAMEVALIDATE/初始化界面JMENUBARMENUBARNEWJMENUBARTHISSETJMENUBARMENUBARFINALJMENUFILEMENUNEWJMENU“文件F“MAILMENUNEWJMENU“邮件M“MENUBARADDFILEMENUMENUBARADDMAILMENUEXITMIADDMENUITEMFILEMENU,“退出“,“EXITGIF“/退出菜单项的初始化/新建邮件菜单项的初始化NEWMAILMIADDMENUITEMMAILMENU,“新建邮件“,“NEWMAILGIF“/已发送邮件菜单项的初始化SENDEDMIADDMENUITEMMAILMENU,“已发送“,“SENDEDPNG“/收件箱邮件菜单项的初始化RECEIVEMIADDMENUITEMMAILMENU,“收件箱“,“RECEIVEPNG“/已删除邮件菜单项的初始化RECYCLEMIADDMENUITEMMAILMENU,“已删除“,“DELETEDPNG“/已删除邮件菜单项的初始化REFRESHMIADDMENUITEMMAILMENU,“刷新收件箱“,“REFRESHJPG“/构建树形节点DEFAULTMUTABLETREENODEROOTNEWDEFAULTMUTABLETREENODE“电子邮件系统“DEFAULTMUTABLETREENODEADDRESSEENEWDEFAULTMUTABLETREENODE“收件夹“DEFAULTMUTABLETREENODESENDNEWDEFAULTMUTABLETREENODE“发件夹“DEFAULTMUTABLETREENODEALREADYSENDNEWDEFAULTMUTABLETREENODE“已发送邮件“DEFAULTMUTABLETREENODEDELETENEWDEFAULTMUTABLETREENODE“已删除邮件“ROOTADDSENDROOTADDADDRESSEEROOTADDALREADYSENDROOTADDDELETETREENEWJTREEROOTTREEADDMOUSELISTENERTHIS/为树形节点注册鼠标事件TREESETPREFERREDSIZENEWDIMENSION160,150/重新渲染树形节点CLASSNAMETREECELLRENDERERRENDERNEWCLASSNAMETREECELLRENDERERTREESETCELLRENDERERRENDER/联系人面板PANELNEWJPANELPANELSETLAYOUTNEWBORDERLAYOUTPANELSETPREFERREDSIZENEWDIMENSION160,300/界面左半部面板PANELFRAMENEWJPANELPANELFRAMESETLAYOUTNEWBORDERLAYOUTPANELFRAMEADDPANEL,BORDERLAYOUTCENTERPANELFRAMEADDTREE,BORDERLAYOUTNORTHADDLINKMANBUTTONNEWJBUTTONADDLINKMANBUTTONSETTEXT“联系人C“ADDLINKMANBUTTONSETICONEDITORUTILSCREATEICON“LINKMANGIF“PANELADDADDLINKMANBUTTON,BORDERLAYOUTNORTHADDLINKMANBUTTONADDACTIONLISTENERTHIS/注册添加联系人事件READLINKMANNEWREADLINKMANXMLJLREADLINKMANMAKELIST/返回联系人列表JLADDMOUSELISTENERTHIS/添加联系人列表双击事件SCROLLPANENEWJSCROLLPANEPANELADDSCROLLPANE,BORDERLAYOUTCENTERSCROLLPANESETVIEWPORTVIEWJL/在滚动面板中添加联系人VALIDATELABELBACKGROUNDNEWJLABELLABELBACKGROUNDSETICONNULL/窗体背景DESKTOPPANEADDCOMPONENTLISTENERNEWCOMPONENTADAPTERPUBLICVOIDCOMPONENTRESIZEDFINALCOMPONENTEVENTEDIMENSIONSIZEEGETCOMPONENTGETSIZELABELBACKGROUNDSETSIZEEGETCOMPONENTGETSIZELABELBACKGROUNDSETTEXT“DESKTOPPANEADDLABELBACKGROUND,NEWINTEGERINTEGERMIN_VALUE/添加一个分割窗口JSPLITPANESPLITPANENEWJSPLITPANEJSPLITPANEHORIZONTAL_SPLIT,PANELFRAME,DESKTOPPANE/在分隔条上提供一个UI小部件来快速展开/折叠分隔条SPLITPANESETONETOUCHEXPANDABLETRUESPLITPANESETDIVIDERSIZE10/设置分隔条的大小GETCONTENTPANEADDSPLITPANE,BORDERLAYOUTCENTER/返回新建菜单项PRIVATEJMENUITEMADDMENUITEMJMENUMENU,STRINGNAME,STRINGICON/新建邮件菜单项的初始化JMENUITEMMENUITEMNEWJMENUITEMNAME,EDITORUTILSCREATEICONICONMENUITEMADDACTIONLISTENERTHIS/监听退出菜单项事件MENUADDMENUITEMRETURNMENUITEM/添加子窗体的方法PUBLICSTATICVOIDADDIFAMEJINTERNALFRAMEIFRAMEJINTERNALFRAMEFRAMESDESKTOPPANEGETALLFRAMESTRYFORJINTERNALFRAMEIFMFRAMESIFIFMGETTITLEEQUALSIFRAMEGETTITLEDESKTOPPANESELECTFRAMETRUEIFMTOFRONTIFMSETSELECTEDTRUERETURNDESKTOPPANEADDIFRAMEIFRAMESETSELECTEDTRUEIFRAMETOFRONTCATCHPROPERTYVETOEXCEPTIONEEPRINTSTACKTRACE/ACTION事件的处理OVERRIDEPUBLICVOIDACTIONPERFORMEDACTIONEVENTEIFEGETSOURCEEXITMISYSTEMEXIT0/退出系统ELSEIFEGETSOURCEADDLINKMANBUTTONADDIFAMEFRAMEFACTORYGETFRAMEFACTORYGETADDLINKMANFRAME/联系人列表ELSEIFEGETSOURCENEWMAILMI/新建邮件ADDIFAMEFRAMEFACTORYGETFRAMEFACTORYGETSENDFRAME/发件夹ELSEIFEGETSOURCEITEMPOPUPONE|EGETSOURCEREFRESHMI/右键刷新收件列表RECEIVEMAILTABLEGETMAIL2TABLESTARTRECEIVEMAIL/右键刷新收件列表ELSEIFEGETSOURCESENDEDMI/已发送ADDIFAMEFRAMEFACTORYGETFRAMEFACTORYGETSENDEDFRAME/已发送ELSEIFEGETSOURCERECEIVEMI/收邮件ADDIFAMEFRAMEFACTORYGETFRAMEFACTORYGETRECEIVEFRAME/收邮件ELSEIFEGETSOURCERECYCLEMI/已删除ADDIFAMEFRAMEFACTORYGETFRAMEFACTORYGETRECYCLEFRAME/收邮件PRIVATESENDFRAMESENDFRAMENULL/发送邮件对象PUBLICJMENUITEMITEMPOPUPONENULL/鼠标右键第一个选项OVERRIDEPUBLICVOIDMOUSECLICKEDMOUSEEVENTE/树形节点中的单击事件DEFAULTMUTABLETREENODESELECTEDNODEDEFAULTMUTABLETREENODETREEGETLASTSELECTEDPATHCOMPONENTIFEGETSOURCETREEELSEIFSELECTEDNODETOSTRINGEQUALS“发件夹“SENDFRAMEFRAMEFACTORYGETFRAMEFACTORYGETSENDFRAMEADDIFAMESENDFRAME/发件夹ELSEIFSELECTEDNODETOSTRINGEQUALS“收件夹“ADDIFAMEFRAMEFACTORYGETFRAMEFACTORYGETRECEIVEFRAME/收件夹ELSEIFSELECTEDNODETOSTRINGEQUALS“已发送邮件“ADDIFAMEFRAMEFACTORYGETFRAMEFACTORYGETSENDEDFRAME/已发送邮件ELSEIFSELECTEDNODETOSTRINGEQUALS“已删除邮件“ADDIFAMEFRAMEFACTORYGETFRAMEFACTORYGETRECYCLEFRAME/已删除邮件ELSEIFEGETSOURCEJLIFSENDFRAMENULLELSEIFEGETBUTTONMOUSEEVENTBUTTON3ELSEIF“收件夹“EQUALSSELECTEDNODETOSTRINGJPOPUPMENUPOPUPNEWJPOPUPMENUITEMPOPUPONENEWJMENUITEM“刷新收件箱“,EDITORUTILSCREATEICON“REFRESHJPG“ITEMPOPUPONEADDACTIONLISTENERTHISPOPUPADDITEMPOPUPONEPOPUPSHOWEGETCOMPONENT,EGETX,EGETYPUBLICVOIDMOUSEENTEREDMOUSEEVENTEPUBLICVOIDMOUSEEXITEDMOUSEEVENTEPUBLICVOIDMOUSEPRESSEDMOUSEEVENTEPUBLICVOIDMOUSERELEASEDMOUSEEVENTEPACKAGEFRAMEIMPORTJAVAAWTBORDERLAYOUTIMPORTJAVAAWTCOLORIMPORTJAVAAWTDIMENSIONIMPORTJAVAAWTGRAPHICSENVIRONMENTIMPORTJAVAAWTEVENTACTIONEVENTIMPORTJAVAAWTEVENTACTIONLISTENERIMPORTJAVAAWTEVENTFOCUSEVENTIMPORTJAVAAWTEVENTFOCUSLISTENERIMPORTJAVAAWTEVENTMOUSEEVENTIMPORTJAVAAWTEVENTMOUSELISTENERIMPORTJAVAAWTEVENTMOUSEMOTIONLISTENERIMPORTJAVAIOFILEIMPORTJAVAUTILARRAYLISTIMPORTJAVAXSWINGACTIONIMPORTJAVAXSWINGBOXIMPORTJAVAXSWINGDEFAULTLISTMODELIMPORTJAVAXSWINGICONIMPORTJAVAXSWINGJBUTTONIMPORTJAVAXSWINGJCOLORCHOOSERIMPORTJAVAXSWINGJCOMBOBOXIMPORTJAVAXSWINGJFILECHOOSERIMPORTJAVAXSWINGJINTERNALFRAMEIMPORTJAVAXSWINGJLABELIMPORTJAVAXSWINGJLISTIMPORTJAVAXSWINGJMENUITEMIMPORTJAVAXSWINGJOPTIONPANEIMPORTJAVAXSWINGJPANELIMPORTJAVAXSWINGJPOPUPMENUIMPORTJAVAXSWINGJSCROLLPANEIMPORTJAVAXSWINGJSPLITPANEIMPORTJAVAXSWINGJTEXTFIELDIMPORTJAVAXSWINGJTEXTPANEIMPORTJAVAXSWINGJTOOLBARIMPORTJAVAXSWINGLISTSELECTIONMODELIMPORTJAVAXSWINGTEXTSTYLEDEDITORKITIMPORTJAVAXSWINGTEXTHTMLHTMLDOCUMENTIMPORTJAVAXSWINGTEXTHTMLHTMLEDITORKITIMPORTMAILUTILSENDATTACHMAILIMPORTUTILSEDITORPOPUPMENUIMPORTUTILSEDITORUTILSIMPORTUTILSSENDEDMAILTABLE/发送邮件界面/PUBLICCLASSSENDFRAMEEXTENDSJINTERNALFRAMEIMPLEMENTSACTIONLISTENER,MOUSELISTENER,MOUSEMOTIONLISTENER,FOCUSLISTENERPRIVATEJCOMBOBOXFONTSIZECB/字体大小列表PRIVATEJCOMBOBOXFONTCB/字体列表PRIVATEJTEXTPANESENDCOTENT/发送内容面板PRIVATEJTEXTFIELDSUBJECTTF/邮件主题文本框PRIVATEJTEXTFIELDCOPY_TO/抄送PRIVATEJTEXTFIELDTO_MAIL/收件人PRIVATEJLISTATTACHMENTLISTNULL/附件列表,最多能添加三个附件PRIVATEJSCROLLPANESCROLLPANENULL/正文编辑窗口PRIVATEJSCROLLPANEJSPNULL/用于显示附件PRIVATEDEFAULTLISTMODELLISTMODELNULL/附件列表模型PRIVATEJLABELADJUNCTLNULL/附件标签PRIVATEJLABELTO_MAILLABELNULL,COPY_TOLABELNULL,SUBJECT_LABELNULLPRIVATEJBUTTONSENDBUTTONNULL/发送按钮PRIVATEJBUTTONRESETBUTTONNULL/重置PRIVATEJBUTTONATTACHMENTBUTTONNULL/插入附件按钮PRIVATEJBUTTONSELECTCOLORBUTTONNULL/颜色选择按钮PRIVATEBOXBASEBOXNULL,BOXV1NULL,BOXV2NULLPRIVATEARRAYLISTATTACHARRAYLISTNEWARRAYLIST/用于存储附件路径的链表PRIVATECOLORCOLORCOLORBLACK/属性定义PRIVATEACTIONBOLDACTIONNEWSTYLEDEDITORKITBOLDACTION/添加加粗侦听器PRIVATEACTIONUNDERLINEACTIONNEWSTYLEDEDITORKITUNDERLINEACTION/添加加下划线侦听器PRIVATEACTIONITALICACTIONNEWSTYLEDEDITORKITITALICACTION/添加倾斜侦听器PRIVATEHTMLDOCUMENTDOCUMENTNULL/声明一个网页文档对象变量PRIVATESENDATTACHMAILSENDMAILNULLPRIVATEEDITORPOPUPMENURIGHTMOUSEBUTTONNULLPRIVATEJPROGRESSBARFRAMEPROGRESSBARNULL/进度条实例PUBLICSENDFRAMESUPER“新邮件“THISSETFRAMEICONEDITORUTILSCREATEICON“NEWMAILGIF“/初始化基本项GETCONTENTPANESETLAYOUTNEWBORDERLAYOUT/设置空布局SETICONIFIABLETRUE/是否使JINTERNALFRAME变成一个图标SETCLOSABLETRUE/是否关闭SETMAXIMIZABLETRUE/窗口最大化设置SETRESIZABLETRUE/设置窗口课以调整大小SETBOUNDS10,10,640,600/设置界面的大小SETVISIBLETRUE/设置收件人标签TO_MAILLABELNEWJLABELTO_MAILLABELSETTEXT“收件人“/抄送标签COPY_TOLABELNEWJLABELCOPY_TOLABELSETTEXT“抄送“/主题标签SUBJECT_LABELNEWJLABELSUBJECT_LABELSETTEXT“主题“/收件人文本框TO_MAILNEWJTEXTFIELD80TO_MAILADDFOCUSLISTENERTHISTO_MAILSETTOOLTIPTEXT“将收件人地址以逗号分隔“/抄送文本框COPY_TONEWJTEXTFIELD80COPY_TOADDFOCUSLISTENERTHIS/主题文本框SUBJECTTFNEWJTEXTFIELD80JPANELSETPANELNEWJPANEL/上半部SETPANELADDBOXSCROLLPANENEWJSCROLLPANESENDCOTENTNEWJTEXTPANESENDCOTENTSETCONTENTTYPE“TEXT/HTML“HTMLEDITORKITEDITORKITNEWHTMLEDITORKITDOCUMENTHTMLDOCUMENTEDITORKITCREATEDEFAULTDOCUMENT/创建默认文档指向网页引用DOCUMENTSENDCOTENTSETEDITORKITEDITORKIT/设置为HTML格式的编辑器SENDCOTENTSETDOCUMENTDOCUMENTSENDCOTENTADDMOUSELISTENERTHISSCROLLPANESETVIEWPORTVIEWSENDCOTENT/工具条FINALJTOOLBARTOOLBARNEWJTOOLBARGETCONTENTPANEADDTOOLBARSENDBUTTONNEWJBUTTON“发送“,EDITORUTILSCREATEICON“NEWSENDGIF“SENDBUTTONADDACTIONLISTENERTHISTOOLBARADDSENDBUTTONRESETBUTTONNEWJBUTTON“重写“,EDITORUTILSCREATEICON“REWRITEGIF“RESETBUTTONADDACTIONLISTENERTHISTOOLBARADDRESETBUTTON/附件列表LISTMODELNEWDEFAULTLISTMODELADJUNCTLNEWJLABEL“附件“JSPNEWJSCROLLPANE/用于显示JLISTJSPSETPREFERREDSIZENEWDIMENSION350,20ATTACHMENTLISTNEWJLISTLISTMODELATTACHMENTLISTADDMOUSELISTENERTHIS/为邮件列表添加鼠标事件JSPSETVIEWPORTVIEWATTACHMENTLIST/设置JSCROLLPANEL的视图为JLISTATTACHMENTLISTSETSELECTIONMODELISTSELECTIONMODELSINGLE_INTERVAL_SELECTIONATTACHMENTLISTSETVISIBLEROWCOUNT1ATTACHMENTLISTSETLAYOUTORIENTATIONJLISTVERTICAL_WRAP/插入附件按钮ATTACHMENTBUTTONNEWJBUTTON“插入附件“,EDITORUTILSCREATEICON“ATTACHPNG“ATTACHMENTBUTTONADDACTIONLISTENERTHISTOOLBARADDATTACHMENTBUTTON/斜体按钮JBUTTONITALICBUTTONNEWJBUTTONITALICACTIONITALICBUTTONSETICONEDITORUTILSCREATEICON“ITALICGIF“ITALICBUTTONSETTEXT“ITALICBUTTONSETPREFERREDSIZENEWDIMENSION22,22/粗体按钮JBUTTONBLODBUTTONNEWJBUTTONBOLDACTIONBLODBUTTONSETICONEDITORUTILSCREATEICON“BLODGIF“BLODBUTTONSETTEXT“BLODBUTTONSETPREFERREDSIZENEWDIMENSION22,22/下划线按钮JBUTTONUNDERLINEBUTTONNEWJBUTTONUNDERLINEACTIONUNDERLINEBUTTONSETICONEDITORUTILSCREATEICON“UNDERLINEGIF“UNDERLINEBUTTONSETTEXT“UNDERLINEBUTTONSETPREFERREDSIZENEWDIMENSION22,22/字体FINALJLABELFONTLABELNEWJLABEL“字体“GRAPHICSENVIRONMENTGEGRAPHICSENVIRONMENTGETLOCALGRAPHICSENVIRONMENT/获得本地计算机上字体可用的名称STRINGFONTGEGETAVAILABLEFONTFAMILYNAMESFONTCBNEWJCOMBOBOXFONTFONTCBADDACTIONLISTENERTHIS/字号列表FINALJLABELFONTSIZELABELNEWJLABEL“字号“STRINGFONTSIZE“10“,“11“,“12“,“13“,“14“,“16“,“18“,“20“,“22“,“24“,“26“,“28“,“36“,“48“FONTSIZECBNEWJCOMBOBOXFONTSIZEFONTSIZECBADDACTIONLISTENERTHISFONTSIZECBSETPREFERREDSIZENEWDIMENSION50,23/颜色FINALJLABELCOLORLABELNEWJLABEL“颜色“SELECTCOLORBUTTONNEWJBUTTON“选色“SELECTCOLORBUTTONADDACTIONLISTENERTHISJPANELEDITORTOOLBARPANELNEWJPANEL/编辑区工具条EDITORTOOLBARPANELADDITALICBUTTONEDITORTOOLBARPANELADDBLODBUTTONEDITORTOOLBARPANELADDUNDERLINEBUTTONEDITORTOOLBARPANELADDNEWJLABEL“EDITORTOOLBARPANELADDFONTLABELEDITORTOOLBARPANELADDFONTCBEDITORTOOLBARPANELADDNEWJLABEL“EDITORTOOLBARPANELADDFONTSIZELABELEDITORTOOLBARPANELADDFONTSIZECBEDITORTOOLBARPANELADDNEWJLABEL“EDITORTOOLBARPANELADDCOLORLABELEDITORTOOLBARPANELADDSELECTCOLORBUTTON/编辑区面板JPANELEDITORPANELNEWJPANELNEWBORDERLAYOUT/编辑区EDITORPANELADDEDITORTOOLBARPANEL,BORDERLAYOUTNORTHEDITORPANELADDSCROLLPANE,BORDERLAYOUTCENTER/添加一个分割窗口JSPLITPANESPLITPANENEWJSPLITPANEJSPLITPANEVERTICAL_SPLIT,SETPANEL,EDITORPANELSPLITPANESETONETOUCHEXPANDABLETRUE/在分隔条上提供一个UI小部件来快速展开/折叠分隔条SPLITPANESETDIVIDERSIZE10/设置分隔条的大小。/整个界面编辑区JPANELFRAMEPANELNEWJPANELNEWBORDERLAYOUT/编辑区FRAMEPANELADDSPLITPANE,BORDERLAYOUTCENTERTHISADDFRAMEPANEL,BORDERLAYOUTCENTERTHISADDTOOLBAR,BORDERLAYOUTNORTHRIGHTMOUSEBUTTONNEWEDITORPOPUPMENUSENDCOTENTPRIVATEBOXBOX/创建标签BOXBOXV1BOXCREATEVERTICALBOXBOXV1ADDTO_MAILLABELBOXV1ADDBOXCREATEVERTICALSTRUT10BOXV1ADDCOPY_TOLABELBOXV1ADDBOXCREA

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论