SendMail程序解析2

本文介绍了一款邮件发送程序的设计与实现过程,包括输入验证、多线程优化及进度显示等功能,并探讨了如何提高程序效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


最后,我们可以点击“发送”来发送邮件了,在发送前,用户在界面上输入所有必须的参数,然后程序获取到这些参数,需要一个事件监听器来响应这个操作,那么程序的设计就应该分了两个部分,一个方法是取得输入参数的值然后保存下来,另外一个是在一个事件监听器中来响应,发送出去。这里,还需要补充一下,任何程序都不是在理想状态下能够这么简单的就能运行的,如果用户忘记输入某些参数,或者输入的参数不符合规范格式,都会导致大量的不规范邮件的发送,给网络造成大的负载。

那么在发送之前 我们必须对每一个部分进行一些必要的验证。


验证方法validate()思路:既然是验证信息,一般只有两种情况,Y/N 那么可以写成是一个boolean类型的,然后把需要验证的参数放进去,错误提示可以用一个对话框显示出来,比如,当我们没有写入收件人的地址的时候,可以这样来提示:


当验证都通过了,那么只需要获取参数来发送邮件了:


在主类SendMail()中,我们在事件响应器中添加一段代码,在响应发送事件:


完成了邮件发送这段代码之后,也实现了发送这个功能,那么 还需要注意,我们只能等待发送窗口完成之后才能够发送第二封或者是第N封邮件,那么当我们需要发送多个邮件的时候,这样的等待是不是太没有效率了?我们永远不能把时间浪费在没有效率上,那么程序还需要改进在java中,一个线程用一个Thread对象表示,一般每一个java程序都有一个main方法(applet没有),它是主线程的入口点,而用Thread表示的线程,入口点自然不是main了,而是run方法,定义一个线程,主要就是写它的run方法,写run有两种方法,一种是继承Thread类,然后重写它的run,另一种是实现Runnable接口,然后重写它的run

(1)定义一个Thread类的子类,覆盖Thread类的run()方法,然后创建该子类的实例。

(2)定义一个实现Runnable接口的类,实现它的run()方法,然后将这个类的实例作为Thread的构造方法的参数,创建Thread类的实例。01-0203--蓝杰实训--Thread专题.ppt-revHEAD.svn000.tmp.ppt

自然 下面我们需要用到的是线程技术 来优化这一功能:


Creating a thread involves creating a new Thread and invoking its start() method. Calling start() causes the run() method of the Thread subclass or the Runnable object passed to the Thread constructor to execute.


Thread t1 = new Thread() {

public void run() {

for (int i=0; i<100; i++) {

System.out.println("Tastes Great");

}

}

};

Runnable r = new Runnable() {

public void run() {

for (int i=0; i<100; i++) {

System.out.println("Less Filling");

}

}

};

Thread t2 = new Thread(r);

t1.start();

t2.start();

完成发送邮件这一线程功能之后 那么同样的,设置一个进度条的进程。当邮件发送的时候,进度条根据邮件发送的的程度来显示进度。这里我们可以用一个技巧:

Private void propressBarThread(){new Thread(new Runnable(){}).start()}


程序功能已经完成了,那么我想要界面变得更加漂亮,比如换皮肤,比如设置背景图片。documents\14-项目开发总结报告(GB8567——88).doc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值