【问题标题】:Creating front end and connecting them in Java在 Java 中创建前端并连接它们
【发布时间】:2011-11-30 10:21:26
【问题描述】:

我是 Java 编程的初学者。使用 JavaMail API,我编写了一个发送电子邮件的程序。现在我需要创建一个前端并将它们连接起来。我只使用记事本编写程序,不使用任何 IDE。如何轻松创建前端并连接到我的程序?

我的程序是:

import javax.mail.*;
import javax.mail.internet.*;
import java.util.Properties;
import java.util.*;

public class Mailer {

    public void Mailer() throws Exception {
        String usrname;
        String pwd;
        Scanner in = new Scanner(System.in);
        System.out.println("\nEnter the gmail user name :");
        usrname = in.next();
        System.out.println("\nEnter the Password :");
        pwd = in.next();
        String HOST_NAME = "smtp.gmail.com";
        int HOST_PORT = 465;

        Properties props = new Properties();
        props.put("mail.transport.protocol", "smtps");
        props.put("mail.smtps.host", HOST_NAME);
        props.put("mail.smtps.auth", "true");

        Session mailSession = Session.getDefaultInstance(props);
        Transport transport = mailSession.getTransport();

        String toadd;
        System.out.println("\nEnter the Recipient Address:");
        toadd = in.next();
        MimeMessage message = new MimeMessage(mailSession);

        System.out.println("\nEnter the Subject:");

        String sub = in.nextLine();
        message.setSubject(sub);

        System.out.println("\nEnter the message body:");
        String body = in.nextLine();
        message.setContent(body, "text/plain");
        message.addRecipient(Message.RecipientType.TO, new InternetAddress(toadd));
        transport.connect(HOST_NAME, HOST_PORT, usrname, pwd);
        transport.sendMessage(message, message.getRecipients(Message.RecipientType.TO));
        transport.close();

        System.out.println("Mail Sent successfully!!!!");
        System.exit(0);
    }

    public static void main(String[] args) throws Exception {
        System.out.println("*******************Welcome to Mailer*************************");

        Mailer mail = new Mailer();
        mail.Mailer();
    }
}

【问题讨论】:

  • 所编写的代码不是以 GUI 可以使用类的方式编写的,因为它使用了 ScannerSystem.out 之类的东西。为了同时被 GUI 和命令行使用,发送电子邮件的过程需要被抽象为一个类(或方法),由两者调用。
  • 欢迎来到 StackOverflow!如果您不使用 IDE,您的开发将花费更长的时间,并且更难(非常!)调试和正确操作。我强烈建议您花时间学习 Eclipse 或 IntelliJ IDEA 社区版:它们都是免费的,使用起来并不难(如果您不使用“高级功能”),并且会在以后为您省去很多麻烦.用记事本管理多个类是一场噩梦,我什至不谈论重构你的代码
  • GUI部分:看一下swing教程:docs.oracle.com/javase/tutorial/uiswing

标签: java swing connection frontend


【解决方案1】:
  1. 分解出一个接受参数并进行电子邮件发送的方法。 此方法中不允许使用 system.out 和 system.in。
  2. 对于测试,您可以使用现有代码部分驱动此方法 从控制台读取参数。
  3. 制作一个 GUI 表单,其中包含所有输入字段,可能还有一些 按钮。你的代码会像这样开始: JFrame f = new JFrame(); f.add(new JLabel("to")); ... f.setVisible(true);你有 学习很多关于组件布局的知识。为简单起见,此代码可以在“main”方法中。
  4. 将前端与后端连接起来:创建一个 actionListener 方法 在从输入字段(getText())收集参数的按钮上和 调用电子邮件发件人方法。

就是这样。 :)

【讨论】:

    【解决方案2】:

    您可以制作包裹。不同的包用于不同的目的。

    就像您可以创建一个包以仅获取您的前端类和包含上述类的其他包来发送电子邮件。

    然后你可以从你的前端类中调用这个类的方法。

    为了制作前端,您可以使用 Swings 创建基于 GUI 的前端,或者您也可以从记事本创建基于 CUI 的前端。

    使用任何 IDE 都不是强制性的,但这只是为了便于编码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-04
      • 1970-01-01
      • 1970-01-01
      • 2014-08-27
      • 1970-01-01
      相关资源
      最近更新 更多