2017-02-15 5 views
-1

Я создал одну кнопку, названную файловым менеджером, а также создал одну таблицу. Когда я нажимаю на свой файловый менеджер, я могу видеть список файлов PDF в таблице. но щелкнув по отдельному файлу на таблице, как я могу открыть свой pdf-документ, не указав наши имена файлов PDF непосредственно в программе? Я привел пример кода ниже. Там я могу выбрать отдельную строку, но я не могу открыть файл PDF. Я прикрепил изображение. Пожалуйста, проверь это.Открытие файла Pdf из JTable, нажав на имя файла pdf, используя java

Заранее спасибо.

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

Start, поддерживая список 'объектов File', не конвертировать их в' String', это будет сделать проще позвонить 'Desktop .open'. Если вам нужно настроить внешний вид объекта, то вместо него используйте средство отображения ячеек – MadProgrammer

ответ

0

Попробуйте Desktop.open() метод.

И поставил содержание PDF в temp file и открыть этот

+0

Благодарим за ответ. Я пробовал использовать метод desktop.open(), но показывал все файлы PDF с родительского диска. но я хочу выбрать один файл PDF из таблицы и открыть его. –

+0

@vidyab Что вы перешли на «Desktop.open»? Вы передали ссылку «Файл»/«URL» на физический файл или каталог? – MadProgrammer

+0

@Thomas Pawlitzki Мне понравилось [String dirPath = "D: \\ Pdf \\"; Файл dir = новый файл (dirPath); Рабочий стол d = Desktop.getDesktop(); d.open (dir);], я передал каталог, но передача имени файла в код мне не поможет, я хочу щелкнуть имя файла из jTable и сразу же открыть его. –

Смежные вопросы