使用javafx filechooser

时间:2017-10-01 14:07:34

标签: java javafx filechooser

我正在尝试通过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);

        }

0 个答案:

没有答案