Newsgroup: it.comp.java
Titolo: Applet non gira sotto Windows e Mac

Salve a tutti,
ho creato una semplice applet che apre un'immagine all'interno della
macchina dell'utente.
Per verificarlo ho usato questa guida 
http://www.developer.com/java/data/article.php/3303561
però l'applet sotto Linux funziona ma non sotto Windows ne Mac. In
particolare sotto Windows il problema è che l'ascoltatore del
FileDialog non intercetta gli eventi. Qualcuno sa dirmi il perché?
Grazie

 Replace "see-the-signature.invalid" with "
gmail.com
"
No non ci sono eccezioni semplicemente i metodi della WindowListener
non vengono chiamati.

 Replace "see-the-signature.invalid" with "
gmail.com
"
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
import java.net.*;
public class Main extends Applet implements ActionListener{
        public Frame f;
	public FileDialog fd;
	public TextField path;
	Image img;
	CanvasImmagine bottom = new CanvasImmagine();
	public void init(){
            f = new Frame("Test");
            f.setSize(300, 300);
            f.setLayout(new BorderLayout());
            path = new TextField(30);
            path.setText("ciao");
            Button browse = new Button("Sfoglia");
            browse.addActionListener(this);
            Panel p = new Panel();
            p.add(path);
            p.add(browse);
            fd = new FileDialog(f);
            fd.addWindowListener(new AscoltatoreBrowse(this));
            f.add(p, BorderLayout.NORTH);
            f.add(bottom, BorderLayout.CENTER);
            f.setVisible(true);
        }
        public void changeImg(String dir, String file){
            try{
                System.out.println("file://"+dir+file);
                img = getImage(new URL("file://"+dir+file), file);
                bottom.setImage(img);
            }
            catch(MalformedURLException e){System.out.println("Errore
url");}
        }
	public void actionPerformed(ActionEvent e){
		fd.setVisible(true);
	}
}
import java.awt.event.*;
public class AscoltatoreBrowse implements WindowListener{
    Main m;
    public AscoltatoreBrowse(Main m){
        System.out.println("Ciao");
        this.m = m;
    }
    public void windowOpened(WindowEvent arg0) {}
    public void windowClosing(WindowEvent arg0) {
        System.out.println("Closing");
    }
    public void windowClosed(WindowEvent arg0) {
        System.out.println("Closed");
    }
    public void windowIconified(WindowEvent arg0) {
		System.out.println("Iconified");
	}
    public void windowDeiconified(WindowEvent arg0) {
		System.out.println("Deiconified");
	}
    public void windowActivated(WindowEvent arg0) {
		System.out.println("Activated");
	}
    public void windowDeactivated(WindowEvent arg0) {
        m.path.setText(m.fd.getDirectory()+m.fd.getFile());
	System.out.println("Ciao");
        m.changeImg(m.fd.getDirectory(), m.fd.getFile());
    }
}
import java.awt.*;
public class CanvasImmagine extends Canvas{
    Image img;
    public void setImage(Image img){
        this.img = img;
    }
    public void paint(Graphics g){
        g.drawImage(img, 0, 0, this);
    }
}

 Replace "see-the-signature.invalid" with "
gmail.com
"
Ti ringrazio molto adesso il FileDialog funziona purtroppo sotto
Windows l'immagine non si vede invece sotto Linux la carica
correttamente. Idee?


E anche con Mac funziona. Non potrebbe essere un errore di URL anche
se il metodo non da errori?

 se il metodo non da errori?
su Mac e Linux il separatore dei path e' /, su Win e' \. Probabilmente
il problema e' questo.
Ciao Jack