使用JFileChosser或FileDialog生成保存对话框窗口

时间:2015-04-13 15:58:49

标签: java eclipse jasper-reports jfilechooser savefiledialog

我正在研究Jasper报告。我需要向用户询问保存生成的报告的位置。为此,我需要打开一个“另存为”对话框。我使用JFileChooserFileDialog进行了尝试。

但是,在执行我的代码时,当执行到达写入“另存为”对话框的代码时,代码仍然停留在那里。我注意到的一件事是,如果你在一个单独的java类中使用自己的PSVM打开一个打开的对话框的JFileChooserFileDialog代码,它运行良好。

但是当它被其他一些函数调用时,执行仍然停留在那里。

我需要添加任何插件或jar来使用JFileChooser和FileDialog吗?或者其他我想念的东西?

我正在使用eclipse Java EE kepler和Spring MVC。

2 个答案:

答案 0 :(得分:0)

FileDialog很容易像这样处理:

public String getFileFromDialog(){
  FileDialog dialog=new FileDialog(yourFrame,"Save as",FileDialog.SAVE);
  dialog.setVisible(true);
  //When you call setVisible(true), the method blocks until the user 
  //chooses a file or cancels the dialog
  return dialog.getDirectory()+dialog.getFile();
}

请注意,如果用户在没有选择任何文件的情况下关闭对话框,则该方法将返回相当奇怪的字符串“nullnull”,因为getDirectory()和getFile()都返回String“null”(不是null但是“null” )。您可能必须检查此项以确保用户实际选择了文件。

答案 1 :(得分:0)

JFrame frame= new JFrame();
frame.setAlwaysOnTop(true);
frame.setVisible(true);
FileDialog fd = new FileDialog(frame, "Save as", FileDialog.SAVE);
fd.setAlwaysOnTop(true);
fd.setVisible(true);
String path=fd.getDirectory().toString()+fd.getFile().toString();
   input=cl.getResourceAsStream(total_employee_record);
report=JasperCompileManager.compileReport(input);
parameters.put("mypic",inputimage);
print=JasperFillManager.fillReport(report, parameters,new              JRBeanCollectionDataSource(beanlist,false));

JasperExportManager.exportReportToPdfFile(印刷,路径); } .......... 这是我的服务方法。现在发生的事情是保存为对话框打开,但在后台。意味着每次我都要尽量减少eclipse来设置路径。 请给我解决方案。 对于糟糕的结构表示道歉。