通过使用java单击pdf文件名从JTable打开Pdf文件

时间:2017-02-15 07:17:29

标签: java swing pdf

我创建了一个名为文件管理器的按钮,我也创建了一个表。当我点击我的文件管理器时,我能够看到表格中的pdf文件列表。但是点击表格中的单个文件,如何在不直接在程序中提供pdf文件名的情况下打开我的pdf文档?我通过下面的示例代码附上了。在那里我可以选择单独的行,但我无法打开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

1 个答案:

答案 0 :(得分:0)

尝试使用Desktop.open()方法。

将PDF的内容放在temp file中并打开此