放在start()里试试
public void start(){
   //.............
}

解决方案 »

  1.   

    我也试过了,还是不行。
    每次用户在移至其他页面之后,再返回这个页面时,start()都会被再次调用,而这是我不希望的,所以我想还是应该放在init()里面。public class MailApplet extends Applet 
    {  private int SMTP_PORT = 25; 
       //邮件服务器缺省端口号 
       private String appletSource = "mail.smpt.com"; 
       //作者邮件服务器IP 
       private TextArea MsgArea; 
       private TextField senderField, recipientField, SubjectField; 
       public void init()
       { 
             //此处调用无效
             new sendMsg(getParameter("a"),getParameter("b"), getParameter("c")); 
       } 
       public boolean handleEvent(Event e) 
       { 
        if (e.id == Event.WINDOW_DESTROY) 
    System.exit(0); 
        return super.handleEvent(e); 
       } 
       public boolean action(Event e, Object arg) 
       { 
         if (arg.equals("SEND")) 
             //此处可以正常调用
    new sendMsg(getParameter("a"),getParameter("b"), getParameter("c")); 
         else 
    return super.action(e, arg); 
         return true; 
       }
    }
    class sendMsg
    {
    public void sendMas(){}
    public sendMsg(String sender, String recipient, String Subject) 
    {  try
       {
         Properties props = System.getProperties();
         props.put("mail.smtp.host","mail.hnair.com");
         Session session = Session.getDefaultInstance(props, null);
         session.setDebug(false);
         Message msg = new MimeMessage(session);
         //sender=getParameter("from");
        if (sender != null)
      msg.setFrom(new InternetAddress(sender));
        else
    msg.setFrom();
        msg.setRecipients(Message.RecipientType.TO,InternetAddress.parse(recipient, false));
        msg.setSubject(Subject);
        msg.setText("content");
        msg.setHeader("X-Mailer", "msgsend");
        msg.setSentDate(new Date());
        Transport.send(msg);
      }
      catch (Exception e) 
      {
         e.printStackTrace();
      }
    }
    }