扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
用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领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者