2017-02-15 7 views
-1

ファイルマネージャという名前のボタンを1つ作成しました。ファイルマネージャをクリックすると、テーブルのpdfファイルのリストを見ることができます。テーブル上の個々のファイルをクリックすると、プログラムで直接PDFファイル名を指定せずに自分のpdfドキュメントを開くことはできますか?以下のサンプルコードで添付しました。私は個々の行を選択することができますが、私はPDFファイルを開くことができません。私はイメージを付けました。これをチェックしてください。JTableからPDFファイルを開くには、javaを使用してpdfファイル名をクリックしてください。

ありがとうございます。

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {            

     String[] r = new String[5]; 
     String dirPath = "D:\\Pdf\\"; 
     File dir = new File(dirPath); 
     String[] files = dir.list(); 

     if (files.length == 0) { 
     System.out.println("The directory is empty"); 

     } else { 
     for (String aFile : files) { 
      System.out.println(aFile); 
     } 
    } 

    DefaultTableModel model = (DefaultTableModel)jTable1.getModel(); 
    model.setColumnIdentifiers(new String[]{"aFile"}); 

    Object[] row = new Object[1]; 

    for(int i = 0; i <files.length; i++) { 
     row[0] = files[i].toString(); 
     model.addRow(row); 
    } 

    private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {  

     try { 
      int row = jTable1.getSelectedRow(); 

      if (row > -1) { 

       String Table_click = (jTable1.getValueAt(row, 0).toString()); 
       jTable1.getSelectedRow(); 
       // model.setColumnIdentifiers(new String[]{"aFile"}); 

       Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " 
              + Table_click); 
      } 
    } catch (Exception e) { 
      JOptionPane.showMessageDialog(null, e); 
    } 

}  

enter image description here

+0

スタートを開くには、STRING''に変換していない、これはそれが簡単 'デスクトップを呼び出すようになります.open'。オブジェクトの外観をカスタマイズする必要がある場合は、代わりにセルレンダラーを使用してください – MadProgrammer

答えて

0

Desktop.open()方法を試してみてください。

そしてtemp fileでPDFの内容を入れて、 `File`オブジェクトのリストを維持することによって、この

+0

返信いただきありがとうございます。私はdesktop.open()メソッドで試してみましたが、親ドライブからすべてのpdfファイルを表示しています。私はテーブルから単一のPDFファイルを選択し、同じを開きたいと思います。 –

+0

@vidyab 'Desktop.open'に何を渡しましたか?物理ファイルまたはディレクトリへの 'File' /' URL'リファレンスを渡しましたか? – MadProgrammer

+0

@Thomas Pawlitzki私は[String dirPath = "D:\\ Pdf \\"; ファイルdir =新しいファイル(dirPath); デスクトップd = Desktop.getDesktop(); d.open(dir);]、私はディレクトリを渡しましたが、コード上のファイルの名前を渡すことは役に立ちません。jTableからファイル名をクリックしたいので、すぐに開きたいと思います。 –

関連する問題