我正在尝试通过filechooser选择一个图像文件并使用默认的关联程序(linux)打开它
在我的javafx用户界面中,我有2个按钮选择图像&看图。通过选择图像按钮我正在拍摄图像路径(需要进一步计算)和视图图像我试图用linux中的默认关联程序打开所选图像。
问题是每当我运行这个程序时,选择图像按钮工作正常。(它给出正确的路径。我已经通过打印测试了它)但是当我点击查看图像时,我的UI变得没有响应,并且任何图像文件都没有打开默认关联程序。
我无法理解我的错?有人可以帮忙吗?
Stage = window;
String currentPath;
String filePath;
Button selectimage = new Button("Select");
Button viewimage = new Button("Result");
selectimage.setOnAction(e->{
File file= fileChooser.showOpenDialog(window);
if (file != null)
{
try {
currentPath = file.toURI().toURL().toExternalForm();
} catch (MalformedURLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
};
//System.out.println(currentPath);
filePath=currentPath.replace("file:", "");
//System.out.println(filePath);
}
});
viewimage.setOnAction(e->{
File imageFile = new File(filePath);
try {
open(imageFile);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
});
在currentPath中我有额外的“file:”,我将其删除以获取所选图像的绝对路径。我的open()函数看起来像这样。
public static void open(File document) throws IOException {
Desktop dt = Desktop.getDesktop();
dt.open(document);
}