Salve, allora, ho una lista di file che mi viene fuori in una JTable; la lista la prendo da file xml; i file sono dei pdf. Come faccio, facendo doppio click su una riga della lista,ad aprire il file pdf con l'acrobat reader?
Salve, allora, ho una lista di file che mi viene fuori in una JTable; la lista la prendo da file xml; i file sono dei pdf. Come faccio, facendo doppio click su una riga della lista,ad aprire il file pdf con l'acrobat reader?
se stai utilizzando SE 6.0 puoi rivolgerti alla oramai nativamente integrata classe Desktop
http://java.sun.com/javase/6/docs/ap...t/Desktop.html
che ha il metodo "open" appositamente creato per andare ad aprire, con il reader di default nel sistema in uso, il file che gli viene passato come argomento.
Altrimenti scarica il package jdic
https://jdic.dev.java.net/
che è il progetto originale da cui Desktop è stata derivata.
<´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
"The answer to your question is: welcome to tomorrow"
scusa, cortesemente, mi potrsti fare un esempio di come integrarlo nel codice della classe che ho?
guarda questo esempio, preso da una classe che ho realizzato qualche giorno fa:
codice:jTable1.addMouseListener(new MouseListener(){ public void mouseClicked(MouseEvent arg0) { doubleClickCatcher++; int row=jTable1.getSelectedRow(); // INTERCETTO IL DOPPIO-CLICK if(doubleClickCatcher%2==0){ try { Desktop desktop = null; if (Desktop.isDesktopSupported()) { desktop = Desktop.getDesktop(); } // filePaths E' UN ARRAY LIST DI FILENAME desktop.open(new File(filePaths.get(row).getNomeFile())); } catch (IOException ioe) { ioe.printStackTrace(); } catch (IllegalArgumentException n){ return; } } // fine if()
Java 6:Originariamente inviato da Torry
scusa, cortesemente, mi potrsti fare un esempio di come integrarlo nel codice della classe che ho?
Desktop.getDesktop().open(new File("....blabla...."));
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
niente, non ci riesco![]()
questo è un pezzo della mia classe:
Da un form di ricerca che ho fatto, mi va a dare, nella jTable, l'elenco di file dall'xml (che sono pdf). Dove devo mettere quel codice che m'avete suggerito? In modo che facendo doppio click sulla riga del file interessato, me lo apre con l'acrobat?codice:... private JTable getJTable() { if (jTable == null) { jTable = new JTable(); } return jTable; } private GestioneArchivioXML gestioneArchivioXML = new GestioneArchivioXML("percorso file xml"); // @jve:decl-index=0: private JLabel protocollo = null; private JLabel numeroDocumentol = null; private JLabel tipo = null; private JLabel dataDocumento = null; private JLabel dataDocumento2 = null; private JLabel al = null; private JLabel descrizione = null; private JLabel fornitore = null; private HashMap popolamentoHashMap() throws Exception{ HashMap<String, Object> h = new HashMap<String, Object>(); /***********************************************************/ if (jTextField1.getText() != null && !jTextField1.getText().equals("")) h.put("protocollo", jTextField1.getText()); if (jTextField2.getText() != null && !jTextField2.getText().equals("")) h.put("descrizione", jTextField2.getText()); if (jTextField.getText() != null && !jTextField.getText().equals("")) h.put("numeroDocumento", jTextField.getText()); if (jTextField9.getText() != null && !jTextField9.getText().equals("")) h.put("codiceRif", jTextField9.getText()); if (jComboBox.getSelectedItem() != null && !jComboBox.getSelectedItem().equals("-")) h.put("tipo", jComboBox.getSelectedItem()); if (jTextField3.getText() != null && !jTextField3.getText().equals("")) h.put("data", gestioneArchivioXML.getDate(jTextField3.getText(), "dd/MM/yyyy")); if (jTextField4.getText() != null && !jTextField4.getText().equals("")) h.put("dataFrom", gestioneArchivioXML.getDate(jTextField4.getText(), "dd/MM/yyyy")); if (jTextField5.getText() != null && !jTextField5.getText().equals("")) h.put("dataTo", gestioneArchivioXML.getDate(jTextField5.getText(), "dd/MM/yyyy")); if (jTextField8.getText() != null && !jTextField8.getText().equals("")) h.put("partitaIva", jTextField8.getText()); return h; } }
a) Registri un MouseListener sul JTableOriginariamente inviato da Torry
In modo che facendo doppio click sulla riga del file interessato, me lo apre con l'acrobat?
b) Nel mousePressed() usi il MouseEvent per: 1) verificare che il click count sia 2 (doppio click) e 2) prendere il Point del click
c) Con il Point usi rowAtPoint() di JTable per sapere la riga nella "view". Se non c'è un RowSorter di mezzo, la riga della "view" è identica quella nel "model".
d) Sapendo la riga, estrai i dati che ti servono ... qui dipende da quale table model hai usato, insomma ... quale struttura dati hai usato.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Originariamente inviato da andbin
a) Registri un MouseListener sul JTable
b) Nel mousePressed() usi il MouseEvent per: 1) verificare che il click count sia 2 (doppio click) e 2) prendere il Point del click
c) Con il Point usi rowAtPoint() di JTable per sapere la riga nella "view". Se non c'è un RowSorter di mezzo, la riga della "view" è identica quella nel "model".
d) Sapendo la riga, estrai i dati che ti servono ... qui dipende da quale table model hai usato, insomma ... quale struttura dati hai usato.
lo so che sono un rompi @@![]()
Un banale esempio pratico di codice scritto?
@Torry & onieliv
Regolamento, punto 6:
Ho corretto io entrambi i post...Formattazione del codice sorgente.
Quando incollate una porzione di codice all'interno di un messaggio, utilizzate l'apposito tag
[ CODE] codice [/ CODE]
che può essere inserito automaticamente premendo il pulsante CODE: questo renderà il codice leggibile e facilmente comprensibile a tutti, agevolando gli utenti che desiderano aiutarvi.
Ciao.![]()
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
Pardon Lele, non ricordavo di dover mettere il codice in appositi tagOriginariamente inviato da LeleFT
@Torry & onieliv
Regolamento, punto 6:
Ho corretto io entrambi i post...
Ciao.![]()
sorry![]()