gpt4 book ai didi

java - 使用 JavaFX 中的关联程序打开 PDF 文件

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:36:20 25 4
gpt4 key购买 nike

我想要我的 java 应用程序,如果用户选择单击按钮,PDF 使用安装在计算机中的默认 PDF 阅读器打开。我要打开的 PDF 存在于同一个包“应用程序”中。

我使用的代码是

 package application;

import java.io.File;
import javafx.application.Application;
import javafx.application.HostServices;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.FileChooser;
import javafx.stage.Stage;


public class Main extends Application {

@Override
public void start(final Stage primaryStage) {
Button btn = new Button();
btn.setText("Load PDF");
btn.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {

File pdfFile = new File("computer_graphics_tutorial.pdf");
getHostServices().showDocument(pdfFile.toURI().toString());
}
});

StackPane root = new StackPane();
root.getChildren().add(btn);

Scene scene = new Scene(root, 300, 250);


primaryStage.setScene(scene);
primaryStage.show();
}

public static void main(String[] args) {
launch(args);
}
}

最佳答案

如果 PDF 文件与调用者文件在同一个包中(如您所述),则

getHostServices().showDocument(getClass()
.getResource("computer_graphics_tutorial.pdf").toString());

应该可以解决问题。

getResource方法可以真正灵活地使用来定位文件。这是一个关于如何使用它的小描述:JavaFX resource handling: Load HTML files in WebView .

关于java - 使用 JavaFX 中的关联程序打开 PDF 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41608795/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com