最后,我们可以点击“发送”来发送邮件了,在发送前,用户在界面上输入所有必须的参数,然后程序获取到这些参数,需要一个事件监听器来响应这个操作,那么程序的设计就应该分了两个部分,一个方法是取得输入参数的值然后保存下来,另外一个是在一个事件监听器中来响应,发送出去。这里,还需要补充一下,任何程序都不是在理想状态下能够这么简单的就能运行的,如果用户忘记输入某些参数,或者输入的参数不符合规范格式,都会导致大量的不规范邮件的发送,给网络造成大的负载。
那么在发送之前 我们必须对每一个部分进行一些必要的验证。
验证方法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
SendMail程序解析2
最新推荐文章于 2019-11-29 22:59:06 发布