Newsgroup: it.comp.java
Titolo: Help per drawImage !!

Salve a tutti !!
Qualcuno puo' aiutare un principiante ?
Espongo il mio problema cercando di essere il piu' chiaro possibile....
Ho creato 3 classi:
una classe " ProvaGrafica " per esercitarmi nella programmazione grafica-
import java.awt.*;
class ProvaGrafica extends Frame
{    public ProvaGrafica()
     {  setTitle("ProvaGrafica");
        setBackground(Color.lightGray);
        setSize(900,500);
        setLocation(50,50);
        setResizable(false);
       }
     public void paint(Graphics g)
     {
         g.setColor(Color.black);
         g.fillRect(150,70,600,360);
         g.setColor(Color.green);
         g.fillRect(201,101,499,29)
         ecc..ecc...
     }
}
Una classe "ProvaGraficaTest" che crea il frame di ProvaGrafica -
public class ProvaGraficaTest
{    public static void main(String[] args)
    {  Frame frame = new ProvaGrafica();
       frame.show();
    }
}
ed un'ultima classe nella quale intenderei racchiudere elementi Immagine da
riprodurre nel frame creato. Il mio problema č: " COME FACCIO A " DISEGNARE"
NEL FRAME REALIZZATO UN IMMAGINE GIF IMPORTANDOLA DA UNA CLASSE ESTERNA  E
RICHIAMANDOLA DAL METODO MAIN DI ProvaGraficaTest ?
 la mia terza classe č del tipo :
class Elementi
{
public void MostraElemento1()
             {
                  String blueBall = "ball.gif";
                  Image cerchio =
Toolkit.getDefaultToolkit().getImage(blueBall);
                  g.drawImage( cerchio, 446, 246, null) ;
              }
// altri metodi simili
   }
Questo non funziona !!
Mi ripeto ! vorrei chiamare dal metodo main di ProvaGraficaTest il metodo
MostraElemento1 ( probabilmente errato nella sintassi ) con una chiamata del
tipo " Elementi.MostraElemento1(); "e fare in modo che tale elemento grafico
venga " rappresentato " alle coordinate indicate nel frame creato da
ProvaGrafica.
Come si fa???
Spero che qualcuno mi aiuti !!
Ringrazio in anticipo STEFANO

Scusa fammi capire. 
In linea di massima stai cercando di delegare ad un'altra classe il
completamento delle grafiche del tuo Frame ?
Se è così :
Java non memorizza i pixel che tu disegni tramite i metodi draw fill
etc etc...
è per questo che la semplice chiamata a draw ti sembra non
funzionare...
Dico "sembra" non funzionare perchè sicuramente quel metodo disegna
quello che vuoi, ma lo fa una volta sola. Quel che dovresti fare è far
si che la chiamata
a "Elementi.MostraElemento1()" venga eseguita ogni volta che viene
invocato il paint del frame.
Per comodità mi verrebbe di consigliarti di disegnare tutto nel paint,
ma se proprio ci tieni a disegnare esternamente a quel metodo...
POtresti creare un'interfaccia del tipo:
public interface PaintListener
{
    public void paint(Graphics g, Component c);
}
e passarla in input al tuo Frame che dovrebbe essere strutturato
grossomodo così
public class GraphicFrame extends Frame
{
    public GraphicFrame(PaintListener listener)
    {
       .....
    }
    public void paint(Graphics g)
    {
        super.paint(g);
        listener.paint(g,this);
    }
}
non ti resta che istanziare la classe dal main
public static void main(String[] args)
{
    (new GraphicFrame(new PaintListener(){
        public void paint(Graphics g, Component c)
        {
            //DISEGNA :)
        }
    })).setVisible(true);
}
Ciao :)

 ha scritto nel messaggio
news:40814505.0306...@posting.google.com...
