论坛首页 入门技术论坛

SendMail程序解析2

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

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






验证方法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

论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics