Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente bannato
    Registrato dal
    Nov 2007
    Messaggi
    97

    [Swing] Aprire file pdf

    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?

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    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"

  3. #3
    Utente bannato
    Registrato dal
    Nov 2007
    Messaggi
    97
    scusa, cortesemente, mi potrsti fare un esempio di come integrarlo nel codice della classe che ho?

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    83
    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()

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Torry
    scusa, cortesemente, mi potrsti fare un esempio di come integrarlo nel codice della classe che ho?
    Java 6:
    Desktop.getDesktop().open(new File("....blabla...."));
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    Utente bannato
    Registrato dal
    Nov 2007
    Messaggi
    97
    niente, non ci riesco


    questo è un pezzo della mia classe:
    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;		
    	}
    
    }
    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?

  7. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Torry
    In modo che facendo doppio click sulla riga del file interessato, me lo apre con l'acrobat?
    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.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  8. #8
    Utente bannato
    Registrato dal
    Nov 2007
    Messaggi
    97
    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?

  9. #9
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    @Torry & onieliv

    Regolamento, punto 6:

    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.
    Ho corretto io entrambi i post...


    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

  10. #10
    Utente bannato
    Registrato dal
    Nov 2007
    Messaggi
    97

    Re: Moderazione

    Originariamente inviato da LeleFT
    @Torry & onieliv

    Regolamento, punto 6:



    Ho corretto io entrambi i post...


    Ciao.
    Pardon Lele, non ricordavo di dover mettere il codice in appositi tag


    sorry

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.