Newsgroup: it.comp.java
Titolo: Aiuto per finestra

Salve , ho un problema con una finestra che deve caricare diverse
immagini , in base a cosa gli viene comandato da un applet principale.
I listati valgono più di mille parole.
 
 
package immagini;
 
import java.applet.Applet;
import java.awt.*;
import java.awt.image.*;
 
public class immagini extends java.applet.Applet {
Image immagine;
Image immagine1 ;
Image immagine2;
Frame finestra ;
public void init(){
immagine1 =getImage(getCodeBase() , "Paba3.jpg");
immagine2 =getImage(getCodeBase() , "Paba.jpg");
finestra = new Finestra();
}
public boolean mouseDown(Event premi , int x, int y) {
if ( y < 196 && y > 126 && x < 125 && x> 75){
immagine = immagine1;
repaint();
finestra.show();
 return true;}
 else {
immagine = immagine2;
repaint();
 
 return false;}
 }
public void paint (Graphics screen ) {
screen.drawImage(immagine2 , 0 , 0 , this);
screen.drawImage(immagine, 0 , 0 , this);
 
}
 
}
 
 
------------------------------------------------------------------------------------------------
 
package immagini;
 
import java.awt.*;
import java.awt.image.*;
 
public class Finestra extends Frame{
 
Canvas canvas;
public boolean handleEvent ( Event  chiusura) {
 
setSize(400,400);
 
if (
chiusura.id
 == Event.WINDOW_DESTROY){
 
dispose();
 
return true;
 
}
 
else{
 
return false;
 
}
 
}
 
public void init(){
canvas = new ImageCanvas();                                           
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
                                                               canvas
= new ImageCanvas();
add(canvas);
}
}
 
 
 
-----------------------------------------------------------------------------------
package immagini;
 
import java.awt.image.*;
import java.awt.*;
 
class ImageCanvas extends Canvas{
 Image DrawingImage ;
 
 public ImageCanvas(Image img){
  DrawingImage = img;
  repaint();
 }
public void init() {
img =getImage(getCodeBase() , "Paba3.jpg");
}
 public void paint(Graphics g){
   g.drawImage(DrawingImage,0,0,DrawingImage.getWidth(this),DrawingImage.getHeight(this),this);
 }
}
 
------------------------------------------ERRORI------------------------------------------------------------
"ImageCanvas.java": Error #: 300 : variable img not found in class
immagini.ImageCanvas at line 15, column 1
"ImageCanvas.java": Error #: 300 : method getCodeBase() not found in
class immagini.ImageCanvas at line 15, column 15
 
"ImageCanvas.java": Error #: 300 : method getImage(<any>,
java.lang.String) not found in class immagini.ImageCanvas at line 15,
column 6
------------------------------------------------------------------------------------------------
Come vedete gli errori sono 2 fondamentalmente.
Uno riguarda il fatto di portare il canvas nell frame, il secondo di
richiamare immagini dal canvas.
Non riesco a capire perche il Frame creato in Finestra lo riesco ad
utilizzare in immgini mentre il canvas creato in ImageCanvas non
riesco ad usarlo nella finestra.
Il compilatore funza benissimo e mi ha sempre compilato tutti gli
applet .
 
Se poteste aiutarmi ve ne sarei grato.
 
Ciao

Ciao! Stai facendo tanta confusione!! Gli errori 2 e 3 derivano dal fatto
che i due metodi da te indicati appartengono alla classe Applet. La classe
ImageCanvas dovrebbe estendere Applet, ma non essendo cosě, č ovvio che non
puoi usarli!!
Il primo errore invece č una tua svista vera e propria:
non č la variabile img che devi usare (img nasce e muore nel costruttore e
poi di lei non puoi piů farci nulla), bensě la variabile DrawingImage!!

...

Ok , ma  come posso mettere delle immagini JPG in una classe che
estende jawa.awt.canvas ?????
Ciao e grazie per i consigli

 ha scritto nel messaggio
news:930175c3.0107...@posting.google.com...

Tu le carichi con la classe che estende applet e poi le passi nel
costruttore della classe che estende canvas:
public class Azzlet extends Applet {
....
public Canvetta canva;
public Image imma;
public void init() {
    imma=getImage(...);
    canva=new Canvetta(imma);
}
...
}
public class Canvetta extends Canvas {
    private Image imago;
    public Canvetta(Image imx) {
        imago=imx;
    }
    .....
}
E cosě hai ottenuto ciň che volevi!