我使用Java和Netbeans开发员工薪资管理系统。我单击打开按钮时打开.pdf文件。
但是当我点击打开按钮时,我想选择该文件。
我该怎么做?
我想使用JFileChooser
。
那么如何使用JFileChooser
打开PDF文件?
这是打开按钮的代码,但这不完整 - 它不会打开PDF。
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
JFileChooser chooser = new JFileChooser();
chooser.showOpenDialog(null);
File f = chooser.getSelectedFile();
filename = f.getAbsolutePath();
}
答案 0 :(得分:2)
其中两部分:
例如,可以找到更多的想法here。
答案 1 :(得分:2)
您可以像这样使用Desktop.getDesktop().open(new File(path));
:
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
openFile();
}
使用JFileChooser
并打开您的pdf文件的方法:
private void openFile() throws IOException, ClassNotFoundException {
FileFilter fJavaFilter = new FileFilter();
JFileChooser fc = new JFileChooser();
fc.setDialogTitle("Open your file");
fc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
fc.setCurrentDirectory(new File("."));
fc.setFileFilter(fJavaFilter);
int result = fc.showOpenDialog(this);
if (result == JFileChooser.CANCEL_OPTION) {
//cancel action
} else if (result == JFileChooser.APPROVE_OPTION) {
//open file using
File selectedFile = fc.getSelectedFile();
String path = selectedFile.getAbsolutePath();
File myFile = new File(path);
Desktop.getDesktop().open(myFile);
}
}
修改强>
我们使用FileFilter
仅过滤我们需要的扩展程序,如果您不想使用任何过滤器,可以像这样评论这两行:
//FileFilter fJavaFilter = new FileFilter();
//....
//fc.setFileFilter(fJavaFilter);
如果您想使用Filter,可以将此类添加到项目中,也可以在同一个类中使用它:
class FileFilter extends javax.swing.filechooser.FileFilter {
@Override
public boolean accept(File f) {
//your filter here
return f.getName().toLowerCase().endsWith(".pdf")
|| f.isDirectory();
}
@Override
public String getDescription() {
return "Select file (*.pdf)";
}
}