2016-04-30 8 views
-1

Я хочу, чтобы открыть файл в формате PDF и отображать его на новом окне при нажатии кнопки я попробовать ли это он не работает:Как открыть PDF файл 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

Что такое 'desktop'? Что означает «не работает»? –

+0

Desktop desktop = Desktop.getDesktop(); – Ilyes

+0

не могу найти файл, но я положил его на рабочий стол – Ilyes

ответ

4

Вы можете попробовать этот способ, чтобы открыть PDF-файл:

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

Если вы хотите использовать FileChooser, а затем использовать это:

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

спасибо – Ilyes

+0

Где находится метод 'getHostServices' тело? –

+1

@orion_IX, 'getHostServices()' - метод по умолчанию класса HostServices. Просто импортируйте 'javafx.application.HostServices' в свой класс, и вы найдете ответ. –

0

Если вы используете окно вам нужно исправить путь к файлу, как это:

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

вы должны изменить USER с окна пользователя.

Также обратите внимание, что для escape-последовательностей в языках программирования используется \.

Смежные вопросы