扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
用JDIC开始发送电子邮件会启动桌面默认的电子邮件程序,而不会直接用SMTP发送邮件;通过调用Desktop.mail(),JDIC会启动桌面邮件客户程序的邮件编写窗口,而不会预先载入任何东西。要预先载入邮件编写窗口,我们需要使用Message类。它会被用作编写窗口的模板,你只需要往里面填入你知道的内容就可以了。下面就是来自DemoDesktop的相关代码:
private void composeMailButtonActionPerformed(java.awt.event.ActionEvent evt) {
Message message=new Message();
ArrayList toAddresses=new ArrayList();
toAddresses.add(mailAddressTextField.getText());
message.setToAddrs(toAddresses);
message.setSubject("DemoDesktop Mail Examples");
message.setBody("This is a DemoDesktop Mail example");
try {
Desktop.mail(message);
} catch (DesktopException ex) {
showError("Desktop Exception");
ex.printStackTrace();
}
在这里,我们创建了一个Message,创建了一个发送到(To)地址列表,并把它设置到Message,还设置了标题文本和正文文本,并用Message调用了Desktop.mail。这个地方有一点点小问题,就是你必须为每个地址都创建列表,因为Message的地址属性只接受列表。
还有一些用来对文件进行操作的方法:open()、edit()和print(),其中后面两个方法与sEditable()与isPrintable()互为补充。这些调用允许你对文件调用相应的桌面操作,它们的参数是File。很多桌面系统上几乎没有编辑操作,但是打开和打印这两个操作在各种桌面系统上一般都有。下面是DemoDesktop中与打印操作相关的代码;
private void printFileButtonActionPerformed(java.awt.event.ActionEvent evt) {
String filename=editFileTextField.getText();
File printfile=new File(filename);
…
if(!Desktop.isPrintable(printfile)) {
showError("File is not printable");
return;
}
try {
Desktop.print(printfile);
} catch (DesktopException ex) { … }
}
正如你看到的,JDIC的Desktop类相当简单。JDIC的Desktop类的功能太有用了,以至于它被作为AWT的一部分集成到了Java SE 6里,当然这其中还有一个棘手的问题;API已经在很多方面发生了变化。首先,Desktop类只有两个静态类:isDesktopSupported()用来检测桌面系统的支持状况,Desktop.getDesktop()用来取得将要使用的Desktop实例。
import java.awt.Desktop;
…
if(Desktop.isDesktopSupported()) {
Desktop desktop=Desktop.getDesktop();
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。