2016-04-30 12 views
-1

ich eine PDF-Datei öffnen möchten, und es auf einem neuen Fenster angezeigt wird, wenn eine Schaltfläche geklickt wird ich dieses ein versuchen, es nicht funktioniert:Wie man eine PDF-Datei öffnen javafx

Button btn = new Button(); 

File file=new File("Desktop/Test.pdf"); 
btn.setText("Open"); 

btn.setOnAction(new EventHandler<ActionEvent>() { 

    public void handle(ActionEvent event) { 

     try { 
      desktop.open(file); 
     } catch (IOException ex) { 
      Logger.getLogger(Exemple.class.getName()) 
       .log(Level.SEVERE, null, ex); 
     } 
    } 
}); 
+0

Was ist 'desktop'? Was bedeutet "nicht funktionieren"? –

+0

Desktopdesktop = Desktop.getDesktop(); – Ilyes

+0

kann die Datei nicht finden, aber ich legte es auf den Desktop – Ilyes

Antwort

4

können Sie auf diese Weise versuchen, eine PDF-Datei zu öffnen:

File file = new File("C:/Users/YourUsername/Desktop/Test.pdf"); 
HostServices hostServices = getHostServices(); 
hostServices.showDocument(file.getAbsolutePath()); 

Wenn Sie FileChooser verwenden, dann verwenden Sie diese wollen:

btn.setOnAction(new EventHandler<ActionEvent>() 
{ 
    @Override 
    public void handle(ActionEvent event) 
    { 
     FileChooser fileChooser = new FileChooser(); 

     // Set Initial Directory to Desktop 
     fileChooser.setInitialDirectory(new File(System.getProperty("user.home") + "\\Desktop")); 

     // Set extension filter, only PDF files will be shown 
     FileChooser.ExtensionFilter extFilter = new FileChooser.ExtensionFilter("PDF files (*.pdf)", "*.pdf"); 
     fileChooser.getExtensionFilters().add(extFilter); 

     // Show open file dialog 
     File file = fileChooser.showOpenDialog(primaryStage); 

     //Open PDF file 
     HostServices hostServices = getHostServices(); 
     hostServices.showDocument(file.getAbsolutePath()); 
    } 
}); 
+0

Dank es Arbeit – Ilyes

+0

Wo ist die 'getHostServices' Methode Karosserie? –

+1

@orion_IX, 'getHostServices()' ist eine Standardmethode der 'HostServices' Klasse. Importieren Sie einfach 'javafx.application.HostServices' in Ihrer Klasse und Sie werden Ihre Antwort finden. –

0

Wenn Sie Windows verwenden Sie müssen den Pfad der Datei wie folgt beheben:

File file=new File("C:\\Users\\USER\\Desktop\\Test.pdf"); 

Sie müssen USER mit Ihrem Windows-Benutzer ändern.

Beachten Sie auch, dass \ für Escape-Sequenzen in Programmiersprachen verwendet wird.

Verwandte Themen