2017-02-25 12 views
1

私は、JavaとNetbeansを使って従業員給与管理システムを開発しました。開いているボタンをクリックすると、.pdfファイルを開きたいと思います。ボタンをクリックして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

ファイルを開くための目的は何ですか?プログラムでプレビューするか、外部アプリケーションを起動して何かをしたいですか? –

+0

私のプログラムでPDFファイルをプレビューしたいです。 –

+0

しかし、1つの考え:私はこのプロジェクトが学習のためだけであることを願っています。現実の世界で使用されるようなシステムには本当に取り組んでいませんか? – GhostCat

答えて

2

2部:

  • 開くことができるいくつかのJavaコンポーネントのいずれかで、そのファイル名を使用すると
  • (すでにあることだ)ファイルを選択するために、ファイル選択を使用します/ PDFファイルを提示する。 javas ProcessBuilderを使用して、Adobe Readerなどのツールを使用して新しい外部プロセスを開始し、そのファイルを開きます。

たとえば、hereのアイデアが見つかりました。

+0

2番目の部分のコーディングを教えてもいいですか? –

+2

*「2番目の部分のコーディングを教えてもらえますか?」* Part 2では、 'ProcessBuilder'を使うよりも、**' Desktop.getDesktop()。open(File) '**をお勧めします。 –

2

あなたはこのようDesktop.getDesktop().open(new File(path));を使用することができます:JFileChooserを使用して、PDFファイルを開くには

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { 
    openFile(); 
} 

方法:我々は唯一の私たちの拡張子をフィルタリングするためにFileFilterを使用

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); 

    } 
} 

EDIT

をフィルタを使用したくない場合は、この2行を次のようにコメントすることができます。

//FileFilter fJavaFilter = new FileFilter(); 
    //.... 
    //fc.setFileFilter(fJavaFilter); 

あなたがあなたのプロジェクトにこのクラスを追加することができたり、同じクラスで使用可能なフィルタを使用する場合:

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)"; 
    } 
} 
+0

この単語の最初の行にエラーが表示されます。FileFilter(); –

+0

私の更新をチェック@Zunairahbukhari –

+0

ありがとうuとても..ありがとうございます –