java - 是否可以在 CodenameOne 中实现一个命令,一旦按下按钮而不使用 URL,它将显示 PDF
问题描述
我正在尝试使用 CodenameOne 插件制作一个程序,该插件会在按下按钮时显示各种 PDF,但是如果不为每个 PDF 使用特定的 URL,我找不到这样做的方法。是否有任何可能的方法通过将 PDF 文件放入包中并在需要时调用它们来完成此操作?我会假设我需要使用 ActionListener 但我真的不知道该怎么做。这是我到目前为止所尝试的。
b1L1.addActionListener((e)->File file = new File("/path/to/file.pdf");
Desktop.getDesktop().open(file));
解决方案
桌面或其他 AWT 相关 API 不可用。由于移动操作系统对文件系统的限制不是为处理而设计的,因此即使java.io.File
在 Codename One 上也没有任何意义,请参阅此以获取详细说明。java.io
我们有一个从这里获取的样本:
Form hi = new Form("PDF Viewer", BoxLayout.y());
Button devGuide = new Button("Show PDF");
devGuide.addActionListener(e -> {
FileSystemStorage fs = FileSystemStorage.getInstance();
String fileName = fs.getAppHomePath() + "pdf-sample.pdf";
if(!fs.exists(fileName)) {
Util.downloadUrlToFile("http://www.polyu.edu.hk/iaee/files/pdf-sample.pdf", fileName, true);
}
Display.getInstance().execute(fileName);
});
hi.add(devGuide);
hi.show();
推荐阅读
- python - 如何将整个列表转换为字符串,然后将字符串转换回整个列表
- laravel - Laravel One To One relation return BelongsTo and not the child
- c++ - 如何使用 ndk 加载适用于 Android 的 AAudio API
- wso2 - 如何订阅安全咨询通知?
- java - 想法如何在android studio中制作一个存储应用程序
- c# - unity colsion 触发启动动画
- python - 将非结构化 TXT 转换为 CSV
- algorithm - 没有重叠边的图寻路问题
- python - asyncio.gather() - task.cancelled() 在 task.cancel() 之后为 False
- python-3.x - 如何使用 python 在不和谐中制作倒计时机器人