Como visualizar uma imagem localizada em um servidor FTP?

Eai Galera estou usando FTP… consigo listar os arquivos, gravar, pegar os docs do servidor FTP e passá-los para uma pasta…agora o problema é visualizar em um JFRAME.

       setTitle("Visualizar Imagem");
       label = new JLabel();  
       String path = "c:\fotos";
       String namef = path+"teste.jpg";
       ImageIcon img = new ImageIcon(namef);
       label.setIcon( img );
       add("Center", label );
       setSize(img.getIconWidth(),img.getIconHeight());

Deste modo eu consigo mostrar uma imagem que esta na minha pasta fostos…como seria setar uma pasta no ftp?

Estou tentando joga-la em um buffer e depois carrega-la…mas o setIcon só recebe ImageIcon

[code]


String arquivo=“foto.jpg”;
Image img = null;
ftp.changeWorkingDirectory (pasta);
InputStream is = ftp.retrieveFileStream(arquivo);
//InputStream is = getClass().getResourceAsStream(arquivo);
BufferedInputStream bis = new BufferedInputStream(is);
byte[] bytes = new byte[10000];
int byteRead = bis.read(bytes,0,10000);
img = Toolkit.getDefaultToolkit().createImage(bytes,0,byteRead);

      [/code]

Alguem poderia me ajudar…VLW! :roll:

Com a classe ImageIO voce consegue ler uma imagem de um inputstream, esse método te retorna um bufferedimage, que é um image:

http://java.sun.com/javase/6/docs/api/javax/imageio/ImageIO.html#read(java.io.InputStream)

foi mal, nao li seu código direito…

o ImageIcon tem um construtor que recebe um image:

http://java.sun.com/javase/6/docs/api/javax/swing/ImageIcon.html#ImageIcon(java.awt.Image)

Vlw Renato…Mas o problema deve estar em pegar este arquivo do ftp…meu codigo deve estar errado!!
Vc sabe como eu faço isso…tenho mesmo que ter um buffer ?

ah sim…
voce pode usar a biblioteca Apache Commons Net pra conectar pelo FTP:

http://commons.apache.org/net/

tem uma classe chamada FTPClient, que tem um método retrieveFileStream que te devolve um InputStream.

Muito provavelmente com isso já dá pra você juntar no seu código, e dessa forma o buffer fica transparente.

Nossa…penei mais consegui!!!

Image img = null; ftp.changeWorkingDirectory(pasta);//muda para pasta no servidor FTP onde se encontra o arquivo foto.jpg InputStream is = new BufferedInputStream(ftp.retrieveFileStream("foto.jpg")); img = ImageIO.read(is);

Depois é só chamar na ImageIcon

label = new JLabel(); ImageIcon img = new ImageIcon(image); label.setIcon( img );

VLW… :stuck_out_tongue: