如何利用JDIC与桌面交互操作

开发者在线 Builder.com.cn 更新时间:2007-01-15作者:builder.com.cn 来源:

本文关键词: Java java JAVA JDIC

用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();


用户评论

  • 用户名
  • 评论内容