Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Caricare immagini in un JEditorPane

    Ciao, sto cercando di caricare immagini in un JEDitorPane, immagine che fa parte di uno script in HTML, ora l'HJTML lo carica bene invece l'immagine no, potete aiutarmi, vi posto lo script, l'immagine (logoteam.png ) si trova nella cartella "classes".

    saluti Roberto

    codice:
    import java.io.File;
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.sql.SQLException;
    import javax.swing.JEditorPane;
    import javax.swing.JFrame;
    import javax.swing.JScrollPane;
    import javax.swing.text.html.HTMLDocument;
    import javax.swing.text.html.HTMLEditorKit;
     
    public class HtmlImmagini extends JFrame {
        JEditorPane editor;
       
        // costruttore
     
        public HtmlImmagini() throws MalformedURLException{
            super("Prove HTMLIMMAGINI");
            setSize(900, 600);
            setLocation(200, 200);
     
         // costruzione JEditorPane
     
            editor = new JEditorPane("text/html","<html><body");
            HTMLEditorKit kit = new HTMLEditorKit();
            HTMLDocument doch = new HTMLDocument();
            editor.setEditorKit(kit);
            editor.setDocument(doch);
            editor.setEditable(false);
     
          // fine JEditorPane
     
            JScrollPane sc = new JScrollPane (editor);
            add(sc);
     
            // inizio script HTML
     
            String intestazione="<html><body><table  bgcolor=red width=90%  align=center ><tr>"+
                "<td><img scr=\"logoteam.png\"></td>"+
                "<td bgcolor=white><h1 align=center><font color=red size=9>Visualizzazione Intestazione</font></h1>" +
                "<hr align=center size=6 border=8 width=80%>" +
                "<h1 align=center><font color=red size=5 >La presente visualizzazione serve solo a verificare i dati</font></h1></td>"+
                "<td><img scr=\"logoteam.png\"></td>"+
                "</tr></table>
    ";
     
           // fine HTML
     
           // caricamento immagine
     
           File dir = new File ("classes");
           URL baseUrl = dir.toURI ().toURL ();
           HTMLDocument htmlDoc = (HTMLDocument) editor.getDocument ();
           htmlDoc.setBase (baseUrl);
     
          // fine caricamenti immagine
     
         
          // caricamento stringa sull'editor
           editor.setText(intestazione);
     
     
        }// fine costruttore
     
      
          // inizio main
        public static void main(String [] args ){
    
        HtmlImmagini img = new HtmlImmagini();
    
          img.setVisible(true);
    
         } // fine main
    
    
    }

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Caricare immagini in un JEditorPane

    Originariamente inviato da RobertoBel
    ora l'HJTML lo carica bene invece l'immagine no
    Guarda che "tecnicamente" quello che hai fatto è corretto. Anche se si può fare in modo un pochino più semplice e breve.

    La questione invece credo proprio che sia nel new File("classes"). Questa 'classes' è relativa alla directory corrente. Quale è la directory corrente quando lanci la applicazione??? La questione è tutta qui .... dipende da come/da dove lanci la applicazione.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3

    Caricare immagini in un JEditorPane

    ciao, io uso netbeans che si trova in c:\programmi\netbeans\bin ( qui c'è il file exe ) ed ha il collegamento sul desktop, mentre il progetto si trova in C:\progettinetbeans\HTML( qui ci sono le varie cartella scr, build, ecc ... ), ed è qui che netbeans carica il progetto, per questo avevo pensato che bisognasse mettere l'immagine qui dentro ho provato anche ha mettere l'immagine in src dove c'è il fila java, puoi darmi una mano, anche in funzione del jar che seguirà, il mio script è funzionale oppure il tuo di cui parlavi è più pratico.

    saluti Roberto

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Caricare immagini in un JEditorPane

    Originariamente inviato da RobertoBel
    ciao, io uso netbeans che si trova in c:\programmi\netbeans\bin ( qui c'è il file exe ) ed ha il collegamento sul desktop, mentre il progetto si trova in C:\progettinetbeans\HTML( qui ci sono le varie cartella scr, build, ecc ... ), ed è qui che netbeans carica il progetto, per questo avevo pensato che bisognasse mettere l'immagine qui dentro ho provato anche ha mettere l'immagine in src dove c'è il fila java, :confused
    Non centra la "home" del progetto, o dove hai i sorgenti, o dove netbeans mette i .class compilati. Se usi un pathname relativo ... è relativo alla directory corrente e centra solo come/da dove lanci la applicazione.
    È chiaro che potrebbe andarti bene o no questa cosa .... intendo il fatto che il caricamento dipenda dalla "directory corrente".

    Originariamente inviato da RobertoBel
    anche in funzione del jar che seguirà
    Cioè per la tua applicazione vuoi realizzare un jar?? E la immagine dove intendi metterla?? Tenerla fuori dal jar?? Ma così incappi nello stesso problema e siamo di nuovo lì: se specifichi un qualcosa (file o directory) sul file-system che è "relativo" ... centra di nuovo la directory corrente.

    Se, come penso, la immagine "fa parte" in modo fisso della tua applicazione, allora puoi mettere la immagine dentro il jar e fare in modo da ottenere un URL della directory nel jar usando getResource() di Class.

    Se nel jar avessi allo stesso livello il file HtmlImmagini.class e una directory 'immagini' con dentro le immagini, potresti fare:

    URL urlBase = HtmlImmagini.class.getResource("immagini");

    Se poi il contenuto HTML fosse "fisso" e non ad esempio composto dinamicamente a runtime, potresti addirittura mettere un file .html dentro il jar e far caricare a JEditorPane direttamente quello usando getResource(). Ora avresti già una "base"!!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5

    Caricare immagini in un JEditorPane

    Innanzitutto grazie per le risposte, la nebbia comincia a diradarsi, dunque ho messo la cartella immagini nella cartella src del progetto in modo che netbeans la veda, anche in funzione della costruzione del fila jar, ed ho inserito questo metodo per caricare le immagini:
    codice:
    /** Ritorna un ImageIcon, o un astringa di errore se il path non è valido */
       protected static ImageIcon createImageIcon(String path) {
            java.net.URL imgURL = HtmlImmagini.class.getResource(path);
            if (imgURL != null) {
                return new ImageIcon(imgURL);
            } else {
                System.err.println("FILE NON TROVATO: " + path);
                return null;
            }
        }// fine createImageIcon
    
    
    ImageIcon imag = createImageIcon("immagini/logoteam.png");
    il problema è che inserendo imag nel codice HTML ( questo l'originale "<td><img scr=\"logoteam.png\"></td>"+ ) non esce nulla
    codice:
    "<td><img scr=\"imag\"></td>"+
    ciao Roberto

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Caricare immagini in un JEditorPane

    Originariamente inviato da RobertoBel
    il problema è che inserendo imag nel codice HTML ( questo l'originale "<td><img scr=\"logoteam.png\"></td>"+ ) non esce nulla
    codice:
    "<td><img scr=\"imag\"></td>"+
    No non puoi caricare tu la immagine visto che tanto poi il documento HTML lo referenzia per nome. Nel senso che non centra nulla un oggetto Image/ImageIcon con il src di <img>.
    Come ho detto prima, puoi usare getResource() per ottenere l'URL della "base" da usare con setBase().
    O in alternativa, se possibile, fare in modo che JEditorPane carichi il documento HTML da un URL (che può essere di una "risorsa" ottenuta con getResource()).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.