Pessoal alguém pode me ajudar a incluir um método thread nesse código… sem a thread o código ñ vai funcionar
obrigada…
/* ViewPng.java
- Faz download e vê um arquivo png
- Capítulo 14 - Estrutura de Conexão Genérica
- Exemplo 14.1: Download e visualização da Imagem PNG */
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import javax.microedition.io.Connector;
import javax.microedition.io.ContentConnection;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.ImageItem;
import javax.microedition.lcdui.TextBox;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
public class ViewPng extends MIDlet implements CommandListener
{
private Display display;
private TextBox tb_main;
private Form f_VPng;
private Command c_exit;
private Command c_view;
private Command c_back;
public ViewPng()
{
display = Display.getDisplay(this);
tb_main = new TextBox("Digite a url", "http://www.corej2me.com/midpbook_v1e1/ch14/duke.png", 75, 0);
c_exit = new Command("sair", Command.EXIT, 1);
c_view = new Command("Ver", Command.SCREEN, 2);
tb_main.addCommand(c_exit);
tb_main.addCommand(c_view);
tb_main.setCommandListener(this);
f_VPng = new Form(" ");
c_back = new Command("Voltar", Command.BACK, 1);
f_VPng.addCommand(c_back);
f_VPng.setCommandListener(this);
}
protected void destroyApp(boolean unconditional) throws MIDletStateChangeException { }
protected void pauseApp() { }
protected void startApp() throws MIDletStateChangeException
{
display.setCurrent(tb_main);
}
public void commandAction(Command c, Displayable d)
{
if(c == c_exit)
{
try { destroyApp(false); }
catch (MIDletStateChangeException e) { e.printStackTrace(); }
notifyDestroyed();
}
else if(c == c_view)
{
try
{
Image im;
if((im = getImage(tb_main.getString())) != null)
{
ImageItem ii = new ImageItem(null, im, ImageItem.LAYOUT_DEFAULT, null);
if(f_VPng.size() != 0)
f_VPng.set(0, ii);
else
f_VPng.append(ii);
}
else
f_VPng.append("download sem sucesso");
display.setCurrent(f_VPng);
}
catch (Exception e) { System.err.println("Msg: " + e.toString()); }
}
else if(c == c_back)
display.setCurrent(tb_main);
}
private Image getImage(String url) throws IOException
{
ContentConnection connection = (ContentConnection) Connector.open(url);
InputStream iStrm = connection.openInputStream();
Image im = null;
try
{
byte imageData[];
int length = (int) connection.getLength();
if (length != -1)
{
imageData = new byte[length];
iStrm.read(imageData);
}
else
{
ByteArrayOutputStream bStrm = new ByteArrayOutputStream();
int ch;
while ((ch = iStrm.read()) != -1)
bStrm.write(ch);
imageData = bStrm.toByteArray();
bStrm.close();
}
im = Image.createImage(imageData, 0, imageData.length);
}
finally
{
if(iStrm != null)
iStrm.close();
if(connection != null)
connection.close();
}
return (im == null ? null : im);
}
}