Newsgroup: it.comp.java
Titolo: Ma allora ce l'ha con le immagini ....

Hello world, con swing:
**********************
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.ImageIcon;
public class FrameTest
{//classe main FrameTest
 
   /**
    * @param args the command line arguments
    */
   public static void main(String[] args)
   {//metodo main
      JFrame frame = new JFrame();
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
      JLabel label = new JLabel("Hello World !!");
      JLabel icon = new JLabel(new ImageIcon("world.gif"));
 
 
      JPanel panel = new JPanel();
      panel.add(icon);
      panel.add(label);
 
      frame.setContentPane(panel);
      frame.pack();
      frame.show();
   }//fine metodo main
 
}//fine classe main FrameTest
*********************************
A far partire da console il programma non mi visualizza l'immagine e 
l'etichetta con scritto "hello world" appare con un ritardo di cinque 
secondi.
Oddio se invece di fare 'frame.pack()' , faccio 'frame.setSize(600, 600)', 
non ho alcun ritardo su la label, ma continuo a non vedere nessuna 
immagina.
Idee ? a parte cambiare corso di studi e darsi all'ippica, of course. :-))
-- 
Ciao. Fabrizio. ( icq: 241182067 )
< MISTAH KURTZ -- HE DEAD.
                A penny for the Old Guy> 
(T.S. Elliot: the hollow men)

Il problema non e' l'imnmagine, ma il layout di JPanel, che per default se
non mi sbaglio e' BorderLayout...
Prova con...
javax.swing.JPanel p=new javax.swing.JPanel(new java.awt.GridLayout(2,1));
// griglia 2 righe 1 colonna
PS: Ancora problemi con icq?

 PS: Ancora problemi con icq?
[OT]
Oddio sai che non lo so !!! oggi tra fingere di lavorare (e quindi studiare) 
e lavorare veramente ..... a parte rompere le balle a uno (perdonami !!) 
.... non l'ho usato molto.
Cmq di solito non va quando non sono sorvegliato, di la la mia idea che il 
mio capo sia un mago dei computer in incognito. :-))
[OT]


Ho fatto copia e incolla del tuo codice, ho creato un'iummagine world.gif e
funziona tutto.
Poi ho rinominato world.gif in modo da non fargli trovare l'immagine... e
l'effetto e' quello che dici tu.
Mi sa' che devi ricontrollare il path dell'immagine.

cattiviK wrote:

Hai ragione tu: il file del programma fa parte di un package, ma il 
programma va a cercare l'immagine nel path principale: non ci avevo proprio 
pensato.
Grazie.


Ho appena modificato il tuo codice per far si' che l'immagine world.gif
venga prelevata
in modo relativo rispetto alla tua classe, nella directory dov'e' la classe
o anche nel jar che la contiene
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.ImageIcon;
import java.net.URL;
public class FrameTest
{//classe main FrameTest
   /**
    * @param args the command line arguments
    */
   public static void main(String[] args)
   {//metodo main
      JFrame frame = new JFrame();
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      JLabel label = new JLabel("Hello World !!");
      URL img=FrameTest.class.getResource("world.gif");
      JLabel icon = new JLabel(new ImageIcon(img));
      JPanel panel = new JPanel();
      panel.add(icon);
      panel.add(label);
      frame.setContentPane(panel);
      frame.pack();
      frame.show();
   }//fine metodo main
}//fine classe main FrameTest
PS: Assumo world.gif nella stessa directory o nello stesso jar di
FrameTest.class
Ciao


usa:
 JButton btn = new JButton(new
ImageIcon(tuoFrame.class.getResource("immagine.gif")));
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 
Grazie ho capito.
Naturalmente è la stessa cosa anche per le label, vero?


 Naturalmente è la stessa cosa anche per le label, vero?
Si. usa anche:
 Image sfondo = new ImageIcon
(tuoFrame.class.getResource("sfondo.jpg")).getImage ();
Fai attenzione alle estensioni (.gif .jpg) poichè in windows le estensioni
sono in genere maiuscole e quindi se usi il programma su Linux o Solaris
puoi
avere problemi.
Ciao.


 
Conosco bene il problema essendo già in linux, tant'è che tranne per i nomi 
delle classi non uso mai maiuscole per i file.
