GameDevBlog do TK2000
Maurílio Silva
TK
Arquivos:

Criando um Menu com J2ME
06 de agosto de 2005. - 19:56:46
Bom, depois de muito tempo sem postar nada aqui no meu blog...

Na última madrugada, enquanto auxiliava um amigo a criar um menu utlizando J2ME, resolvi fazer esse pequeno tutorial, onde vou procurar mostrar como fazer um menu simples no J2ME.

A primeira coisa que devemos fazer antes de começar-mo o nosso menu é definir o que ele vai ter, como por exemplo:

- menus principais
- sub menus
- etc

Para este exemplo eu definir que o meu menu teria dois menus principais:

- Menus principais
- - START
- - OPTIONS

E que o menu OPTIONS teria quartro itens:

- OPTIONS
- - SOUND
- - VIBRA
- - AUTO FIRE
- - DONE

E que fora o DONE, os demais teriam dois estados:

- ESTADOS do ITENS do sub menu OPTIONS
- - ON
- - OFF

Bom tendo em mãos o meu menu, o que ele vai conter, vamos para a programação...

A primeira coisa a fazer no nosso menu é definir as variáveis para seu controle e apresentação, primeiro definimos as variaveis de uso geral:

// para que eu saiba em qual tela estou
    protected byte TELA_ATUAL;
    
    // variavel para controle dos menus
    protected byte MENU_SELECIONADO;
    
    // variaveis que define o menu atual/tela atual
    protected final byte TELA_MENU = 0;
    protected final byte TELA_OPCOES = 1;
Agora definimos as variavéis do menu Principal:
// para dizer o que está selecionado no menu principal
    protected final byte START = 0;
    protected final byte OPTIONS = 1;

Vamos definir as variavéis do menu Options:

// para o sub menu options
    protected final byte SOUND = 1;
    protected final byte VIBRA = 2;
    protected final byte AUTOFIRE = 3;
    protected final byte DONE = 4;
    
    // poder controlar o estado de cada opcao
    protected boolean _sound;
    protected boolean _vibra;
    protected boolean _autoFire;

Precisamos inicializar algumas váriaveis no nosso construtor:

// inicializa as variaveis
        this._sound = true;
        this._vibra = true;
        this._autoFire = false;
        this.TELA_ATUAL = TELA_MENU;
        this.MENU_SELECIONADO = START;
Precisamos desenhar a tela de acordo com a variavel TELA_ATUAL:
protected void paint(Graphics g) {
        // verifica qual é a tela atual, para poder
        // chamar o metodo correto
        switch( TELA_ATUAL) {
            case TELA_MENU: mainMenu(g); break;
            case TELA_OPCOES: optionsMenu(g); break;
        }
    }
Quando o paint(), chamar o nosso mainMenu(), será exibida essa tela ao abaixo, cujo código está logo em seguida.

protected void mainMenu( Graphics g) {
        // limpa a tela com a cor branca
        g.setColor( 0xcccccc);
        g.fillRect( 0, 0, _width, _height);
        
        // define a cor do texto
        g.setColor( 0x000000);
        // desenha o texto
        g.drawString( "main menu", _width/2, 2, Graphics.TOP|Graphics.HCENTER);
        
        // verifica qual o menu selecionado para poder
        // desenhar o retangulo de selecao
        // define a cor do retangulo
        g.setColor( 0xffffff);
        switch( MENU_SELECIONADO) {
            case START: g.fillRect( 3, 19, _width-6, 14); break;
            case OPTIONS: g.fillRect( 3, 34, _width-6, 14); break;
        }
        
        g.setColor( 0x666666);
        g.drawString( "start", 5, 20, Graphics.TOP|Graphics.LEFT);
        g.drawString( "options", 5, 35, Graphics.TOP|Graphics.LEFT);
    }

Quando for chamando o metodo optionsMenu(), tela de opções, a tela exibida será essa a seguir:

Abaixo tem os links para o download do código completo e do executavel .jar.

Menu.jad Menu.jar Menu.zip

Bom, espero que esse meu mini tutorial, possa ajudar a turma que, assim como eu, está começando com o J2ME.

Maurílio Silva
TK2000

  ©2005 Maurílio da Silva
Todos os direitos reservados
Lampião v1.0 beta - Gerenciador de Conteúdo
©2002-2005 SCREAMSOFT
TK