A) Desktop – JDK 1.6

In diesem Kapitel möchte ich Ihnen die Klasse java.awt.Desktop vorstellen. Mit dieser Klasse ist es möglich Dateien mit dem zugeordnetem Programm des Betriebssystems zu öffnen, editieren und auszudrucken. Des Weiteren kann eine URL mit dem Standardbrowser geöffnet, und das E-Mail Programm des Rechners gestartet werden.

Bevor Sie diese Klasse verwenden, sollten Sie zuerst überprüfen, ob Desktop überhaupt von Ihrem Betriebssystem unterstützt wird. Hierzu rufen Sie folgende, statische Methode auf:

Desktop.isDesktopSupported();

Gibt diese Methode true zurück, wird diese Klasse durch dieses Betriebssystem unterstützt. Anschließend können Sie mit

Desktop desk = Desktop.getDesktop();

eine Instanz erzeugen.

Auch wenn die Klasse vom Betriebssystem unterstützt ist, heißt das noch lange nicht, dass auch alle Funktionen unterstützt werden. Dies kann mithilfe der Methode Desktop#isSupported und der Enumeration Desktop.Action überprüft werden.

import java.awt.Desktop;
public class DesktopTest {

  public static void main(String[] args) {
o
    if (Desktop.isDesktopSupported()) {
      System.out.println("Desktop-Klasse wird unterstützt");
      Desktop desk = Desktop.getDesktop();
      System.out.println("Der Browser kann geöffnet werden: " + 
        desk.isSupported(Desktop.Action.BROWSE));
      System.out.println("Eine Datei kann editiert werden: " +
        desk.isSupported(Desktop.Action.EDIT));
      System.out.println("Das Mail-Programm kann geöffnet werden: " +
        desk.isSupported(Desktop.Action.MAIL));
      System.out.println("Eine Datei kann geöffnet werden: " +
        desk.isSupported(Desktop.Action.OPEN));
      System.out.println("Eine Datei kann gedruckt werden: " +
        desk.isSupported(Desktop.Action.PRINT));
    }
  }
}

Nun können die gewünschten Funktionen verwendet werden. Um eine Datei zu öffnen, bearbeiten oder drucken, wird die gewünschte Datei in Form eines File-Objekts der entsprechenden Methode (welche alle drei eine IOException werfen können) übergeben.

File open = new File("C:/dokument.doc");
File edit = new File("C:/webseite.html");
File print = new File("C:/berechnung.xls");
if (Desktop.isDesktopSupported()) {
  Desktop desk = Desktop.getDesktop();
  try {
    desk.open(open);
    desk.edit(edit);
    desk.print(print);
  }
  catch (IOException e) {
    e.printStackTrace();
  }
}

Um eine URL im Standardbrowser zu öffnen wird ähnlich vorgegangen. Übergeben Sie der Methode Desktop#browse die gewünschte Adresse als URI-Objekt und schon öffnet sich der Browser und zeigt die gewünschte Seite an. Auch diese Methode kann eine IOException werfen. Des weiteren kann bei der Erstellung einer neuen URI eine URISyntaxException ausgelöst werden.

try {
  desk.browse(new URI("https://java-blog-buch.bytes4fun.de"));
}
catch (IOException e) {
  e.printStackTrace();
}
catch (URISyntaxException e) {
  e.printStackTrace();
}

Beim Aufruf des Mail-Programms gibt es mehrere Möglichkeiten. Die einfachere ist einfach das Mail-Programm aufzurufen – ohne weitere Parameter. Dadurch wird das Standardformular zum Versenden einer neuen E-Mail geöffnet. Sie haben es erraten: auch bei dieser Methode muss eine evtl. auftretende IOException abgefangen werden!

try {
  desk.mail();
} 
catch (IOException e) {
  e.printStackTrace();
}

Bei der komplexeren Variante wird dieser Methode noch eine URI als Parameter übergeben. Diese URI enthält die mailto-Spezifikationen. Dadurch ist es möglich für die zu versendende E-Mail bereits Daten wie Empfänger, Betreff, Inhalt, … vor zu blenden.

try {
  desk.mail(new URI("mailto:webmaster@java-blog-buch.de" +
    "?subject=Feedback" + 
    "&body=Tolle%20Seite!"));
} 
catch (IOException e) {
  e.printStackTrace();
}
catch (URISyntaxException e) {
  e.printStackTrace();
}

Ähnliche Beiträge

  • A) Robot – JDK 1.3

    Anders, als es vielleicht viele denken, sind in Java – trotz der Plattformunabhängigkeit – auch Operationen wie das Simulieren eines Tastendrucks oder eines Mausklicks möglich. Hierzu dient die Klasse java.awt.Robot. Es ist also möglich Tastatureingaben und Maussteuerung zu simulieren und so z. B. eine Demo-Programmsteuerung zu implementieren. In diesem Kapitel werden wir uns diese Klasse…