Estou tentando colocar imagem na tela mas não consigo. Onde estou errando >>>>>
import java.io.*;
import javax.microedition.lcdui.*;
public class Memo extends Canvas {
private Image image;
public Memo() {
try {
image = Image.createImage("/1.jpg");
} catch(IOException e) {}
}
protected void paint(Graphics g) {
g.setColor(0xffffff);
g.fillRect(0, 0, getWidth(), getHeight());
g.setColor(0x0000ff);
g.drawImage(image, getWidth()/2, getHeight()/2, Graphics.TOP|Graphics.LEFT);
}
}
Tenho que colocar a imagem em algum lugar específico?
OBS:Estou usando o Eclipse com o plugin EclipseMe
1 - Já conseguiu determinar se o erro é durante o carregamento da imagem ou durante sua impressão na tela?
2 - O que aparece na tela?
3 - Alguma IOException é lançada?
4 - Colocou a imagem no diretório correto?
Responda essas perguntas, para mais detalhes, assim é possível dar uma resposta melhor. Até lá, a única coisa que posso dizer é para tentar utilizar um arquivo .png.
Waocnek
Fiz uns testes e descobri que o erro é durante o carregamento da imagem.
A única IOException que é lançada é essa que ocorre durante o carregamento da imagem.
A imagem apenas não aparece na tela.
Coloquei uma imagem .png para testar mas não funcionou.
Coloquei tanto na pasta res e na pasta src (que é onde está o o arquivo .java).
Não mudei nda no código.
Oq pode estar acontecendo? Como resolver?
Hum… Você tentou colocar o arquivo .png (não pode ser .jpg, leia isto, para mais detalhes) no diretório onde encontra sua classe?
Este é um código de uma aplicação minha, o arquivo se encontra no mesmo diretório do código. O que eu sugiro:
1 - Altere a String do seu código para procurar o arquivo “/1.png”.
2 - Coloque a versão .png do arquivo (com o nome “1”, é claro) dentro do diretório do arquivo com o código compilado.
3 - Execute e teste.
Waocnek
Consegui fazer a imagem funcionar, mas tive que colocar dentro da pasta verified/classes
Agora outro problema que estou tendo é o seguinte:
Eu crio um projeto naquele Sun Java Wireless Toolkit e copio os arquivos .java pra dentro da pasta src.
Quando clico em Build ele dá um erro mto estranho, que ñ entendo, sendo que esse erro, qdo compilo pelo eclipse, não aparece e roda normalmente >>>>>
[color=“red”]
Memo.java:94: nextInt() in java.util.Random cannot be applied to (int)
Memo.numGerado = random.nextInt(9);
^
1 error
com.sun.kvem.ktools.ExecutionException
Build failed
[/color]
Qdo fui olhar a linha que dava erro >> random.nextInt(9); - linha 94
public void run() {
random = new Random();
Memo.numGerado = random.nextInt(9); //linha 94
Memo.texto = Integer.toString(Memo.numGerado);
Memo.numeros[Memo.cont] = Memo.numGerado;
Memo.cont++;
System.out.println(Memo.numGerado);
}
a variável estática numGerado da classe Memo é do[color=“red”] tipo int[/color].
Pq isso só ocorre no Wireless Toolkit? Tem como resolver?
Pelo o que estou vendo, o problema é de CLDC, como você pode ver pelas informações disponíveis na classe Random pelo Javadoc, o método nextInt(int n) apenas surgiu no CLDC 1.1, ou seja, se você tentar executá-lo usando o 1.0, o compilador irá acreditar que você está usando o método nextInt(), que não possui argumentos, daí o erro. Se for isso mesmo, tente retirar o 9 e compilar, se funcionar deve dar tudo certo. Para resolver de vez, configure o emulador para rodar como se fosse CLDC 1.1.
Waocnek
waocnek
vlw pela dica do CLDC
realmente era isso…qdo coloquei o wtk pra rodar com CLDC 1.1, compilou perfeitamente…
brigadão…