Newsgroup: it.comp.java
Titolo: Gestione immagini con swing

Sera,
tempo fa avevo avviato un progetto a scopo didattico e quindi ero costretto
ad utilizzare le awt!
Per fortuna ora non ho piů questi vincoli (sia didattici che awt) quindi
vorrei nel tempo libero riscriverlo e finirlo utilizzando le swing!
Ho visto che posso caricare un'immagine semplicemente scrivendo JLabel
immagine = new JLabel(new ImageIcon("prova.gif"));
Perň ho bisogno di far apparire l'immagine in un preciso punto x,y...e
successivamente ad un'azione tramite l'uso del timer effettuare uno
spostamento di questa immagine.
Nelle awt avevo iniziato ad utilizzare un canvas ..etc..etc... ma con le
swing come mi dovrei comportare?
Grazie
Byez
B@STI

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Per posizionare un componente in posizioni assolute (come in V.B), devi
impostare a null il layout del contenitore con setLayout(LayoutManager
layout), quindi specificare per ogni componente la posizione con il
metodo setLocation(int x, int y).
Per quanto riguarda il timer hai più scelte: Timer, TimerTask, Thread.
Ciao.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (GNU/Linux)
iD8DBQE/R+BR5brVWxtv9NwRAgN2AJ9+ODaA7YUDF7x6Aix3V+YglzAc3QCfcSiO
bRzckdPm4pNZ3zYARRNuC/4=
=pZ6E
-----END PGP SIGNATURE-----

 Ciao.
1000 grazie per l'auito
byez
B@STI

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
posta il codice.
- --
+----------------------------------------------------------------+
| Linux Registered User #313185 at 
http://www.counter.li.org
     |
+------------------------------------------+---------------------+
| GNU/Linux Slackware 9.0 - Windows XP Pro | Java - Visual Basic |
+------------------------------------------+---------------------+
| GPG Key available on 
www.keyserver.net
 (key_ID: 0x1B6FF4DC)    |
+----------------------------------------------------------------+
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (GNU/Linux)
iD8DBQE/SNgn5brVWxtv9NwRAvC4AJ0Z+Mf3ySl3H9ONJYDHKkpKwKZrqwCdEZRI
XMViQAwEFtIzTLMwxZTibUE=
=URib
-----END PGP SIGNATURE-----

> posta il codice.
ok!
In pratica non mi visualizza niente.
=====
import javax.swing.*;
import java.awt.*;
public class Prova extends JFrame
{
  private static Prova jf;
  private Container contentPane;
  private JLabel pippo;
  public Prova()
  {
    setResizable(false);
    setTitle("Prova");
    setBounds(150, 100, 600, 400);
    setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    contentPane = getContentPane();
    contentPane.setLayout(null);
    pippo = new JLabel("Prova");
    pippo.setIcon(new ImageIcon("c:/img.gif"));
    pippo.setLocation(100,100);
    contentPane.add(pippo);
    setVisible(true);
  }
  public static void main(String args[])
  {
    jf = new Prova();
  }
}
=====
grazie
Byez
B@STI

    contentPane.setLayout(null);
[cut]
A vedere questa istruzione mi sono improvvisamente ricordato di una
particolare pagina del tutorial... vedi se ti può servire:
http://java.sun.com/docs/books/tutorial/uiswing/layout/none.html
--
"tanto va la gatta al largo che affoga"
(per rispondere personalmente leva IlDitoDalCulo)

 
http://java.sun.com/docs/books/tutorial/uiswing/layout/none.html
Grazie!
Cmq ho notato che come nell'esempio il setBound funziona, e anche
reshape...però perchè nel caso di setLocation non visualizza niente?
grazie
Byez
B@STI


Ciao,
perchè setLocation specifica unicamente la posizione della JLabel e non le sue 
dimensioni. Le dimensioni di un componente che viene aggiunto ad un contenitore 
vengono calcolate dal layout dello stesso. In questo caso il layout è a null e 
dunque nessuno si occupa di calcolarle.
Fare
pippo.setLocation(100,100);
equivale a
pippo.setBounds(100, 100, 0, 0);
Se vuoi usare setLocation devi fare
pippo.setLocation(100,100);
pippo.setSize(110,120);
Marco

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
bastilani wrote:
|[...]
|     pippo.setLocation(100,100);
|[...]
Azz... scusa, mi ero dimenticato di aggiungere che devi specificare
anche le dimensioni del componente.
pippo.setSize(int width, int height);
Eventualmente puoi fare tutto in una volta con:
pippo.setBounds(int x, int y, int width, int height);
Ciao. :-)
- --
+----------------------------------------------------------------+
| Linux Registered User #313185 at 
http://www.counter.li.org
     |
+------------------------------------------+---------------------+
| GNU/Linux Slackware 9.0 - Windows XP Pro | Java - Visual Basic |
+------------------------------------------+---------------------+
| GPG Key available on 
www.keyserver.net
 (key_ID: 0x1B6FF4DC)    |
+----------------------------------------------------------------+
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (GNU/Linux)
iD8DBQE/ST1N5brVWxtv9NwRAprPAKDE/S9UVMXrRI9lfmeqEfGS8+1TJACfR/IC
kMaNXR+VvkCqDl44Mp4x4A4=
=CReO
-----END PGP SIGNATURE-----

1000 grazie a tutti :D
Byez
B@STI