Newsgroup: it.comp.java
Titolo: Immagini nelle applicazioni

Come faccio a caricare un'immagine in una applicazione?
Il metodo getImage e' un metodo della classe Applet (tra l'altro
non statico) ma io sto lavorando su un'applicazione.
Grazie in anticipo a chi sara' cosi' gentile da rispondermi.
________________________________________________________________
Per anni i politici hanno promesso la luna:
io sono il primo in grado di darvela.
(Richard Nixon, 1969)
                                                 Nicola Gaudenzi
   /\  /                                    
gaud...@cs.unibo.it
  /  \/ I C R O S               
http://www.cs.unibo.it/~gaudenzi

 Grazie in anticipo a chi sara' cosi' gentile da rispondermi.
Questo codice restituisce un'immagine che carica da un URL.
Ciao,
  Marina
-------------------------------------------
        /**
        * Serve per caricare le icone associate all'applicazione.
        *
        * @param        s        URL dell'immagine da convertire in
icona
        * @param        height   altezza icona
        * @param        width    lunghezza icona
        * @param        useMediaTracker  se true restituisce l'immagine
solo dopo che e' completamente caricata
	* @param	comp  un Component che serve al MediaTracker
        *
        * <pre>
        * @return       Image   icona 
        * </pre>
        *
        */
        public static Image getIcon(String urlGif, int width, int
height, boolean useMediaTracker, Component comp)        
	{
                Panel p = new Panel();
                URL urlim;
                try
                {  
                        urlim= new URL (urlGif);
                }
                catch (MalformedURLException ex)
                {
                        ex.printStackTrace();
                        urlim=null;
                }
                Image image=null;
                boolean existImage=true;
 
                if (urlim!=null)
                {
                        // controllo che l'immagine esista
                        URLConnection urlConn;
                        try
			{
                                urlConn=urlim.openConnection();
			}
			catch (IOException e)
                        {
                                image=null;
                                urlConn=null;
                        }
 
 
                        if ((urlConn!=null) &&
(urlConn.getContentLength()>=0))
                        {
                                //l'immagine esiste
                                // carico l'immagine
                                image =
Toolkit.getDefaultToolkit().getImage(urlim);
 
                                if (useMediaTracker)
                                {
					if (comp == null)
					    return null;
 
                                        // resize dell'immagine
                                        if ( (width>0) && (height>0) )
                                        {
                                                ImageFilter filter = new
ReplicateScaleFilter(width, height);
                                                ImageProducer producer =
new FilteredImageSource(image.getSource(), filter);
                                                image =
p.createImage(producer);
                                        }
 
                                        image.flush();
                                        MediaTracker tracker = new
MediaTracker(comp);
                                        tracker.addImage(image,0);
                                        try
                                        {
                                                tracker.waitForAll(0);
                                        }
                                        catch (Exception ex)
{ex.printStackTrace();}
                                        tracker=null;
 
                                }
                                // resize dell'immagine
                                else if ( (width>0) && (height>0) )
                                {
                                        ImageFilter filter = new
ReplicateScaleFilter(width, height);
                                        ImageProducer producer = new
FilteredImageSource(image.getSource(), filter);
                                        image = p.createImage(producer);
                                }
                        }
                }
                else image=null;
 
                p=null;
 
                System.gc();
                return image;
        }
 
 
        // prende le dimensioni dell'immagine cosi' come sono
        public static Image getIcon(String s)
        {
                return getIcon(s,0,0,false,null);
        }
 
        public static Image getIcon(String s, boolean useMediaTracker,
Component comp)
        {
                return getIcon(s,0,0,useMediaTracker,comp);
        }
 
        public static Image getIcon(String s, int width, int height)
        {
                return getIcon(s,width,height,false,null);
        }

   /  \/ I C R O S               
http://www.cs.unibo.it/~gaudenzi
-- 
	!-----------------------------------------------!
	! Giovanni Petrucciani				!	
	! 
giovanni.p...@iol.it
			!
	!-----------------------------------------------!

confermo



Image img = Toolkit.getDefaultToolkit().getImage(new URL("percorso..."));
Non dimenticare l'immancabile blocco try-catch.
Ciao, Marco [:]|