0
How do I set an image as a background in a JAVA-ME application?! I have no idea how to start this, I’m new to Java.
This is the Class that takes care of the graphic part:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package br.edu.estacio.j2me;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;
/**
*
* @author paulosilva
*/
public class JogoDaVelhaUI extends Canvas {
/**
* métodos para limpar a tela e para desenhar
*/
private Graphics graph;
/**
* método, provido pela classe <code>Canvas</code>, que é capaz de receber o evento para desenho de tela:
* o método <code>paint</code>será chamado assim que a classe estiver pronta para ser desenhada e trará
* consigo um objeto gráfico (Graphics g) que permitirá desenhar na tela.
* Em nosso exemplo, esse objeto gráfico vem através da variável g que é copiada para a variável de classe graph.
* Posteriormente, os métodos limparTela e desenharTabuleiro são chamados
*/
protected void paint(Graphics g) {
this.graph = g;
this.limpaTela() ;
this.desenharTabuleiro();
}
/**
* Método que limpa a tela
* O método <code>limparTela</code> faz com que o objeto gráfico defina sua cor de desenho como branca e desenhe um retângulo por toda a tela,
* ou seja, tudo na tela é apagado por um enorme retângulo branco.
*/
public void limpaTela() {
/**
* O método setColor define a cor que o objeto gráfico assumirá e o método fillRect desenha o retângulo.
* Os três números dentro do método representa as cores na tabela RGB
*/
this.graph.setColor(255, 255, 255);
/**
* Os quatro números dentro de filltRect são para definir respectivamente
* a posição dos eixos x e y, a largura e a altura do retângulo.
*/
this.graph.fillRect(0, 0, getWidth(), getHeight());
}
/**
* O método desenharTabuleiro utiliza os métodos setColor e filltRect para desenhar os traços do tabuleiro
* e utiliza o método drawString para desenhar um número em cada lacuna do jogo,
*/
public void desenharTabuleiro() {
this.graph.setColor (0, 0, 0);
this.graph.fillRect (0, 60, 180, 1);
this.graph.fillRect(0, 120, 180, 1);
this.graph.fillRect(60, 0, 1, 180);
this.graph.fillRect(120, 0, 1, 180);
this.graph.setColor (100, 100, 0);
for (int i = 0, x, y; i < 9; i++) { x = 30 + ( (i % 3) * 60) ; y = 25 + ((i / 3) * 60);
this.graph.drawString(Integer.toString(i +1), x, y, Graphics.TOP | Graphics.HCENTER);
}
}
}
And that’s the part that handles the controls:
package br.edu.estacio.j2me;
import javax.microedition.lcdui.*;
import javax.microedition.midlet.MIDlet;
/**
* Classe de MIDlet
* @author Paulo Roberto
*/
public class VelhaMidlet extends MIDlet implements CommandListener {
/**
* Objeto com o texto de boas vindas
*/
private StringItem boasVindasStringItem;
/**
* Objeto de menu com o botão OK
*/
private Command okCommand;
/**
* objeto que representa o formulario de boas vindas
*/
private Form boasVindasForm;
/**
* Inicia a Aplicação
*/
public void startApp() {
this.setDisplayable(this.getBoasVindasform());
}
/**
* Pausa a Aplicação
*/
public void pauseApp() {
}
/**
* Finaliza a aplicação
*
* @param unconditional <code>boolean</code> - se <code>true</code> informa um fechamento incondicional
*/
public void destroyApp(boolean unconditional) {
}
/**
* Retorna o objeto do Display
*
* @return <code>Display</code> - Objeto Display
*/
public Display getDisplay(){
return Display.getDisplay(this);
}
/**
* Define o objeto que sera exibido on objeto Dispaly
* @param displayable <code> displayable</code> - Objeto displayable
*/
public void setDisplayable(Displayable displayable){
this.getDisplay().setCurrent(displayable);
}
public StringItem getSaudacaoStringItem(){
if (this.boasVindasStringItem==null){
this.boasVindasStringItem = new StringItem(" Jogo da Velha: \n ", " Pressione OK");
}
return this.boasVindasStringItem;
}
/**
* Retorna o objeto que contem o menu OK
* @return <code>command</code> - objeto que contem o menu de ok
*/
public Command getOKCommand(){
if (this.okCommand == null){
this.okCommand = new Command("OK", Command.OK, 1);
}
return this.okCommand;
}
public Form getBoasVindasform(){
if (this.boasVindasForm == null){
this.boasVindasForm = new Form("Bem vindo (a): ", new Item[]{getSaudacaoStringItem()});
this.boasVindasForm.addCommand(getOKCommand());
this.boasVindasForm.setCommandListener(this);
}
return this.boasVindasForm;
}
public void commandAction(Command c, Displayable d) {
if ((d == this.boasVindasForm) && (c == this.okCommand)){
// this.sairMIDlet();
/**
* modificaremos o comportamento do menu “OK” para que,
* ao invés de sair de nossa aplicação, ele abra a classe
* JogoDaVelhaUI e exiba a tela que criamos.
* exibira na tela a nossa classe JogoDaVelhaUI
*/
this.setDisplayable(new JogoDaVelhaUI());
}
}
/**
* Sair da aplicação
*/
public void sairMIDlet(){
this.setDisplayable(null);
this.destroyApp(true);
this.notifyDestroyed();
}
}
Don’t forget to mark the answer as accepted.
– adelmo00
Please do not add "solved" to the title. If the existing answer has solved your problem, you can mark her as accepted. Otherwise, you can add your own answer explaining the solution used, and mark yours as accepted. Having a response accepted will help future site visitors who are having an equal or similar problem.
– bfavaretto