Aprenda a programar para Android – Parte II

Aprenda a programar para Android – Parte II

Criado por Pedro Pinto em 21 de Junho de 2011 | 19 comentários

Programação da aplicação calculadora em Java (continuação do artigo anterior aqui)

Na semana passada ensinamos como criar de uma forma simples layouts em XML para as aplicações a desenvolver para Android. O processo é relativamente simples e caso ainda existam dúvidas não hesitem em perguntar. Depois de criada a interface (layout) e definidos todos os widgets (componentes) é hora de passar a programação da aplicação propriamente dita.

Vamos então ensinar como somar dois números através de uma aplicação para Android.

droid_00

No artigo anterior (ver aqui), definimos os nomes de cada widget através da propriedade id tendo ficado definido da seguinte forma:

  • EditText – @id/edt_num1
  • EditText – @id/edt_num2
  • Button –    @id/btn_somar

droid_01

Vamos agora  começar na programação. Para isso vamos abrir o ficheiro calculadora.java (que se encontra dentro do projecto criado, em src—>pt.pplware).

droid_02

O próximo passo é aceder ao widgets que foram definidos durante a criação do layout.Vamos começar então por fazer uso da classe EditText e definir num1 e num2 como sendo desse tipo. Para o botão fazemos uso da classe Button e definimos btn_somar desse tipo. Devemos também incluir os respectivos imports das classes Button e EditText.

Nas últimas três linhas (marcadas na imagem seguinte) vamos associar as variáveis num1, num2 e btn_somar aos widgets que definimos durante a criação do interface. O método findViewById permite “encontrar” um widget por id (definido durante a criação do interface) que se encontra definido na classe R (que se encontra em gen—>pt.pplware—>R.java).

droid_05

O próximo passo é programar um evento para o botão btn_somar. Basicamente pretende-se que quando o utilizador carregar no botão, seja apresentada a soma entre o valor inserido na edt_num1 e edt_num2.

Começamos por criar um listener para o evento Onclick e nesse momento “apanhamos” os valores das EditTexts. De seguida calculamos a soma dos valores e apresentamos o resultado através de um componente do tipo AlertDialog.droid_06

Resultado

Depois de programarem correctamente a aplicação, basta executar a mesma e testar.

droid_resultado

Código Completo (calculadora.java)
package pt.pplware;
import android.app.Activity;
import android.app.AlertDialog;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;   public class calculadora extends Activity {   EditText num1, num2;
 Button btn_somar;
 @Override
 public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.main);   num1 = (EditText) findViewById(R.id.edt_num1);
 num2 = (EditText) findViewById(R.id.edt_num2);
 btn_somar = (Button) findViewById(R.id.btn_somar);   btn_somar.setOnClickListener(new View.OnClickListener() {
 @Override
 public void onClick(View v) {   //Obtem valor da EditText1 e EditText2
 double val1 = Double.parseDouble(num1.getText().toString());
 double val2 = Double.parseDouble(num2.getText().toString());   //Calcula soma dos numeros
 double soma = val1+val2;   // Apresenta resultados
 AlertDialog.Builder infoResultado = new AlertDialog.Builder(calculadora.this);
 infoResultado.setTitle("Resultado");
 infoResultado.setMessage("A Soma é: "+soma);
 infoResultado.setNeutralButton("Ok",null);
 infoResultado.show();
 }
 });
 }
}

Esperamos que este pequeno artigo vos incentive a entrarem no mundo da programação para Android. Tal como tive a oportunidade de referir a alguns leitores, estes são artigos de iniciação que têm como objectivo ensinar a dar os primeiros na programação para dispositivos móveis com Android.

Agradeço desde já que coloquem todas as vossas duvidas em comentário para que eu e leitores mais experientes possamos dar uma ajuda. Lembrem-se que este é um espaço de partilha de know how e experiências. Começar a programar para Android não é difícil…é preciso é força de vontade e claro que umas dicas dão sempre jeito.
Como trabalho para casa (TPC), podem tentar implementar a função de subtrair, multiplicar e dividir. Depois se pretenderem ver publicado o vosso trabalho enviem-me o mesmo para o e-mail (prometo que não disponibilizo no market Android :) ).

Artigos relacionados

Download: calculadora_android

Vamos começar a programar para Android?

Vamos começar a programar para Android?

Criado por Pedro Pinto em 14 de Abril de 2011 | 50 comentários

Por Carlos Rodrigues e José Afonso para o PPLWARE

Aprenda a instalar o SDK 3.0 Android no Eclipse para preparar o ambiente de programação

O Android é o sistema operativo do momento. São muitos os  dispositivos móveis equipados com esta plataforma da Google e o mercado das aplicações tem crescido de dia para dia. Os programadores “apontam baterias” para este segmento pois, através do market, nem precisam de sair de casa para apresentar/vender os seus projectos ao mundo.

Este artigo visa mostrar os passos para instalar/configurar um ambiente para o desenvolvimento de aplicações Android usando o SDK 3.0 e o Eclipse IDE (provavelmente o IDE mais usado para programação em Android).

android_00

Requisitos:

  • Eclipse 3.4 (Ganymede) ou mais recente
  • Eclipse JDT plugin (incluído na maior parte das distribuições Eclipse IDE (Para descarregar e instalar ou actualizar o Eclipse: http://www.eclipse.org/downloads/)
  • Existem vários pacotes do Eclipse disponíveis para cada plataforma. Para desenvolver aplicações Android recomendam-se os seguintes pacotes:
    • Eclipse IDE for Java Developers
    • Eclipse Classic (versão 3.5.1 ou mais recentes)
    • Eclipse IDE for Java EE Developers
  • JDK 5 or JDK 6
  • Android Development Tools plugin

Vamos então apresentar como integrar o SDK com o Eclipse. Para tal devem seguir os seguintes passos.

Passo 1: É necessário fazer download do Android SDK e do Eclipse IDE. Basta descompactá-los para uma directoria específica (ex: c:\dev\ )

Passo 2: Iniciar o Eclipse, abrir o menu Help > Install new software

clip_image001
Adicionar esta localização https://dl-ssl.google.com/android/eclipse/ (para o Eclipse 3.5 Galileo ou 3.6 Helios)

clip_image002
Na caixa de diálogo Available Software , seleccione a checkbox Developer Tools e clique seguinte:

clip_image003
Na janela seguinte, será possível ver uma lista de ferramentas para ser descarregadas. Clique seguinte e aceite as licenças e clique Finish. Quando a  instalação terminar, reinicie o Eclipse.

Passo 3: Vá agora ao menu  Window> Preferences e escolha a opção Android. Clique no botão Browse.. e localize a pasta para onde extraiu o Android SDK ( c:\dev) e clique em Apply e depois Ok.

clip_image005
Passo 4: Clique no botão clip_image007 e instale os pacotes disponíveis.

clip_image009

Depois disso é necessário criar um dispositivo virtual Android (Android Virtual Device ou AVD) que irá correr as aplicações que desenvolvermos sem necessidade de possuirmos um equipamento Android.

clip_image011

Agora é necessário escolher o nome e  alvo (target).

Um Target define qual a API apropriada para o tipo de software que se pretende desenvolver, neste caso será a versão 3.0. É também necessário escolher a quantidade de memória disponível para o dispositivo virtual, se terá cartão de memória (neste caso 1024Mb) e o hardware que se quer emular (GPS, acelerómetro, trackball, GPS, bluetooth, ..).

Clicar em Finish.

De seguida, ir ao menu New > Project > Android para criar um, novo projecto.

clip_image013

De uma forma rápida fica o que é necessário preencher em cada campo.

– Project Name:
Nome do projecto Android e também da directoria que irá conter os ficheiros do projecto.

– Application Name:
Nome da aplicação. Este é o nome que irá aparecer no dispositivo Android (neste caso helloMobileStone).

– Package Name:

Este é o namespace do pacote e segue as regras de naming do Java. É também o namespace onde a Activity (explicada a seguir) será criada. O nome do package deve ser único, para evitar conflitos nos nomes das classes (neste caso tst.mobilestone.net, é o nosso namespace reservado para testes). Ao desenvolver as suas aplicações deverá utilizar um namespace próprio que o identifique a si ou à empresa onde trabalha.

Create Activity:
Este é o nome da classe gerada pelo plugin. Esta classe é uma extensão (ver polimorfismo) da classe Activity do Android.

Uma Activity  é uma classe que pode ser executada. Pode ser usada para criar interfaces (mas não é obrigatório que o faça). Como a checkbox sugere, é opcional, mas uma Activity é quase sempre usada como base para uma aplicação.

Min SDK Version:
Este valor especifica a versão mínima da API requerida para executar a aplicação.

O nosso projecto Android está quase pronto para entrar em Acção. Escolha no painel do lado direito o ficheiro MobileStone.java e insira o seguinte código:

package net.mobilestone.tst;
 import android.app.Activity;
 import android.os.Bundle;
 import android.widget.TextView;
 public class MobileStone extends Activity {
 /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 TextView tv = new TextView(this);
 tv.setText("Hello, Android");
 setContentView(tv);
 }
 }

Execute a aplicação:
O plugin ADT torna tudo isto bastante fácil: Escolha o menu Run > Run. Seleccione  ”Android Application”.
Finalmente o Eclipse ADT arranca a aplicação dentro do virtual device mostrando o seguinte resultado:

clip_image015

clip_image017

Espero que tenham gostado. Até breve

Primeira aplicação em Android

Primeira aplicação em Android – Parabéns PPLWARE

Criado por Pedro Pinto em 18 de Abril de 2011 | 28 comentários

Aproveitando que hoje é um dia muito importante para o pplware, decidimos “inaugurar” a nossa rubrica de programação para dispositivos móveis com Android. Como normalmente refiro, programar em Android não é diferente de programar em outras linguagens de programação, no entanto é necessário perceber como se interligam os layouts em XML, com as classes em Java e por aí fora.

Vamos lá então começar com o tradicional “Hello World” e aproveitamos para dar os parabéns ao pplware pelo sexto aniversário.

android_10

Há uma lenda que diz o seguinte “Se vais começar na programação e a tua primeira aplicação não é o Hello World, nunca vais ser bom programador !!!!” :) .

Depois de prepararem o vosso ambiente de trabalho Eclipse + SDK (ver aqui), vamos abrir o Eclipse e seguir os seguintes passos:

Passo 1 – Criar um novo projecto Android. Para tal, no Eclipse, escolhemos File—>New—>Other e depois escolhemos Android Project e carregamos em Next.

android_00

Passo 2 – Em seguida vamos indicar os parâmetros do nosso projecto

  • Project name – Nome a atribuir ao projecto
  • Built Target – Requisito mínimo a nível de versão  Android para correr a nossa aplicação
  • Application name: Nome da aplicação
  • Package name: Namespace do pacote a criar ( No mínimo dois nomes).
  • Create Activiy: (Opcional) Nome a associar classe default.
  • Min SKD Version: versão mínima do SDK (Podem ver o número a associar no Built Target)

android_01

Para finalizar carregamos em Finish. Depois de definido os parâmetros anteriores, a aplicação está pronta a funcionar. Vamos apenas dar uma vista de olhos na estrutura do projecto.

Passo 3 – De um modo geral, um projecto para Android é constituído por classes .java (que estão no directório src), layouts baseados em .xml (que estão normalmente dentro da pasta res/layouts), ficheiros em .xml que podem guardar valores de variáveis e mais um conjunto de directórios que servem de suporte ao projecto (para incluir imagens, ficheiros de áudio, etc).

android_02

Passo 4 – Abrindo o ficheiro HelloWorld.java, podemos verificar que foi  uma classe que deriva da classe Activity e que possui um método onCreate que invoca o método setContentView, que invoca o layout main.

android_03

Passo 5 – Vamos agora dar uma espreitadela ao ficheiro main.xml que se encontra dentro da pasta res/layout. Como podemos verificar, é exibido um preview do layout e apresentado o texto “Hello Word, HelloWord” através de uma textview.

android_04

Passo 6 – Acedendo às propriedades da textview, podemos verificar que o texto a apresentar vem da variávelhello que é do tipo String.

android_05

Passo 7 – A informação dessa variável encontra-se no ficheiro strings.xml, que se encontra em res/values.

android_06

Passo 8 – Vamos agora correr a aplicação e ver o resultado. para tal, convém seleccionar a classe principal (neste caso HelloWorld.java) e carregar no botão Run

android_07

Passo 9 – Depois escolhemos a opção Android Application e deixamos o emulador correr.

android_08

Passo 10 – E está feita a vossa primeira aplicação para Android. Caso tenham o smartphone com Android ligado ao PC, podem escolher que a mesma corre directamente no equipamento.

android_09

Trabalho de casa

Agora que começaram a dar os primeiros passos na programação para Android, experimentem fazer o seguinte: em vez de apresentar o Hello World, a aplicação deverá apresentar o texto PARABENS PPLWARE pelo teu 6º Aniversário!!!!, tal como é apresentado na primeira imagem. Deixo uma dica, lembram-se da String hello? Vejam o Passo 6.

Considerações finais

Este é o nosso primeiro artigo sobre programação para Android e esperamos que tenham compreendido. Nos próximos artigos desta rubrica abordaremos mais algumas características e pormenores. A fase inicial (fase de adaptação) é sempre a mais difícil e por isso é importante saber a vossa opinião, as vossas duvidas, as vossas sugestões.

Download: HelloWorld

Projecto Colibri

Projecto Colibri RCP 6.0 – Certificado pelas Finanças

Criado por Vítor M. em 14 de Outubro de 2010 | 30 comentários

CRISE, CRISE, CRISE… A crise financeira nos nossos mercados, agudiza-se, e o mundo empresarial acautela-se fechando portas para salvaguardar bens adquiridos em tempos ricos. No poupar é que está o ganho e é com boas soluções de gestão que se poupa. É no equilíbrio preço vs qualidade que se obtém a sustentação das contas e combate ao deficit das nossas empresas. O Projecto Colibri, pela sua qualidade, pelo seu preço e agora pela certificação fiscal, é uma solução à medida das empresas que querem controlar os seus custos e obter o máximo de proveito.

Na verdade, assistimos a tempos estranhos, atitudes anárquicas e discursos controversos, pelos responsáveis políticos e respectivos arautos da política económica. Pessoalmente encaro esta crise, com um tom bem mais sério, bem mais acutilante. Esta crise é fruto de um passado de ostentação e consumo desenfreado, desequilibrado, até mesmo nos preços pedidos por software necessário para as empresas. Isto sem entrar no plano político. Quanto custa hoje uma solução empresarial à conta da empresa monopolista nesse sector? Custa muito caro. Responsáveis pelas aquisições de software de gestão, abram os olhos.

O Projecto Colibri, como muitas outras soluções, foi recentemente certificado pelas finanças como Solução fidedigna e apta, por cumprir o normativo imposto, as regras financeiras e fiscais. A nova versão foi preparada para responder aos mais imediatos desafios, foram aprimoradas as funções já existentes e introduzidas outras. Acima de tudo, o preço foi ajustado à realidade das nossas empresas, isto na versão profissional.

Algumas novidades: Projecto Colibri RCP6 obteve a certificação exigida pelas finanças sob o número 38.

Segundo a portaria 363/2010 de 23/06 é obrigatória a certificação dos programas de facturação a partir de Janeiro de 2011. O Projecto Colibri é o primeiro programa de gestão gratuito certificado pelas finanças!!! Como já é do conhecimento dos mais atentos, o Projecto Colibri é desenvolvido em Java e utiliza as últimas tecnologias de desenvolvimento, três delas Eclipse que é usado pela (IBM), datanucleus que é usado pela (Google) e um potente editor de reports BIRT (Business Intelligence and Reporting Tools).

A prova da qualidade é o crescente número de utilizadores da versão gratuita e da versão profissional, isto prova que o Projecto Colibri tem a confiança dos utilizadores e elevou este projecto a um patamar onde só lá estão as poderosas empresas deste sector, empresas que praticam preços desajustados mas que, perante a hábitos e a inércia dos gestores, que obrigam ao pagamento por qualquer actualização ou adaptação fiscal… e está a chegar uma época de muitas alterações fiscais.

Algumas características:
  • Multi-plataforma
  • Multi-base de dados
  • Multi-língua
  • Multi-empresa
  • Multi-utilizador
  • Multi-entidades
  • Multi-documentos
  • Multi-moeda

  • Ambiente gráfico baseado em RCP – Rich Client Platform
  • Motor de reports baseado em BIRT – Business Intelligence and Reporting Tools
  • Motor de persistência baseado em DN – Data Nucleus Access Platform
  • Utilização de layouts dinâmicos em tabelas e documentos
  • Optimização de utilização pelo teclado
  • Motor de filtros e pesquisas avançado
  • Outputs directos para PDF

Homepage: Projecto Colibri

Jogo em Java

Bom hoje nós vamos desenvolver um game educativo bem simples em Java, desenvolvi esse game para ensinar as pessoas que estão começando a mexer no computador e tem problemas com o mouse, ele consiste em vários quadradinhos na tela e a jogador tem que ir passando o mouse no quadradinho vermelho que vai mudando de lugar.

1

O game que vamos desenvolver tem essa aparência, são 30 quadradinhos que ao passar o mouse eles vão mudando de cor, mas eles têm que passar o mouse em uma ordem se não, não tem sentido o game né.

Pronto, vamos por a mão no código ehehehh.

Primeiro vamos criar uma classe para fazer os quadradinhos, então crie a classe Quadrado.

O quadrado tem que ter, posição X, Y, largura, altura, e uma cor.

import java.awt.Color;

public class Quadrado {
        private int x;
        private int y;
        private int width;
        private int height;
        private Color cor;

    public Quadrado(int x, int y, int width, int height) {
        this.x = x;
        this.y = y;
        this.width = width;
        this.height = height;
    }

    public Quadrado(){

        }

    public Color getCor() {
        return cor;
    }

    public void setCor(Color cor) {
        this.cor = cor;
    }

    public int getHeight() {
        return height;
    }

    public void setHeight(int height) {
        this.height = height;
    }

    public int getWidth() {
        return width;
    }

    public void setWidth(int width) {
        this.width = width;
    }

    public int getX() {
        return x;
    }

    public void setX(int x) {
        this.x = x;

    }

    public int getY() {
        return y;
    }

    public void setY(int y) {
        this.y = y;
    }  
}

Pronto já temos os quadradinhos precisamos criar agora nossa janela, a janela é mais complicada porque temos que criar um modelo de como vai ser a tela, para depois quando formos criar a tela do game programaremos somente que vamos usar.

A Classe Janela deverá estender a JFrame, pois assim teremos uma janela, precisaremos também implementar duas interfaces a MouseListener e a MouseMotionListener para controlarmos o mouse, deixaremos essa classe abstrata.

Então ficará assim:

import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import javax.swing.JFrame;

public abstract class Janela extends JFrame implements MouseListener, MouseMotionListener{
}

Você não precisa, mas é interessante implementar todos os métodos das classes MouseListener, MouseMotionListener, porque depois só sobrescrevemos só aqueles que vamos usar entendeu??? Hehehhe.

Então até agora a classe Janela está assim:

public abstract class Janela extends JFrame implements MouseListener, MouseMotionListener {

    public void mouseClicked(MouseEvent e) {
    }

    public void mousePressed(MouseEvent e) {
    }

    public void mouseReleased(MouseEvent e) {
    }

    public void mouseEntered(MouseEvent e) {
    }

    public void mouseExited(MouseEvent e) {  
    }

    public void mouseDragged(MouseEvent e) {
    }

    public void mouseMoved(MouseEvent e) {
    }
}

Continuando a classe janela precisamos de uma variável para guardar em que fase nos estamos e precisamos também criar os quadradinhos.

    private int numeroDaFase;
    public int getNumeroDaFase() {
        return numeroDaFase;
    }

    public void setNumeroDaFase(int numeroDaFase) {
        this.numeroDaFase = numeroDaFase;
    }

    protected ArrayList<Quadrado> quad = new ArrayList<Quadrado>();

    public ArrayList<Quadrado> getQuad() {
        return quad;
    }

    public void setQuad(ArrayList<Quadrado> quad) {
        this.quad = quad;
     }

Vamos criar inicializar os componentes e fazer um teste?

Para isso precisamos criar mais outro método e depois uma classe, o método é o inicializarComponetes(), assim inicializamos tudo em um único método assim fica mais fácil depois.

public void inicializaComponetes() {
    addMouseListener(this);
    addMouseMotionListener(this);
     setResizable(false);
     setSize(740, 640);
     setTitle(”:: Elzo Brito – Game ::”);
     setDefaultCloseOperation(EXIT_ON_CLOSE);
    show();
}

Agora vamos criar a classe MinhaTela com ela vamos criar a tela, no primeiro momento só para testar a classe Janela depois vamos usar ela para ser nossa tela.

public class MinhaTela extends Janela{

    public MinhaTela(){

        inicializaComponetes();

    }

}

Pronto agora na classe Main crie uma instancia de MinhaTela e veja o que fizemos até agora…

public class Main {

    public static void main(String[] args) {

        MinhaTela mt = new MinhaTela();

    }

}

 

Pode não parecer, mas 50% do nosso game já está pronto J, vamos dar continuidade e desenhar na tela os quadrados que compõe a tela, para isso vamos criar outra classe para facilitar nosso trabalho, criaremos então a classe Fase é nela que estarão os elementos que vamos usar no jogo.

A classe Fase tem um array com 30 quadrados que formarão a tela, alem dos dos métodos setQ() que servirá para setar a posição dos quadrados na classe e getQ() para recuperar os quadrados depois, o construtor da classe cria os 30 quadradinhos já passando a posição que cada um vai estar na tela.

public class Fase {

    private Quadrado[] q = new Quadrado[30];

    public Quadrado[] getQ() {

        return q;

    }

    public void setQ(Quadrado[] q) {

        this.q = q;

    }

    public Fase() {

        Quadrado[] q = new Quadrado[30];

        q[0] = new Quadrado(20, 40, 100, 100);

        q[1] = new Quadrado(140, 40, 100, 100);

        q[2] = new Quadrado(260, 40, 100, 100);

        q[3] = new Quadrado(380, 40, 100, 100);

        q[4] = new Quadrado(500, 40, 100, 100);

        q[5] = new Quadrado(620, 40, 100, 100);

        q[6] = new Quadrado(20, 160, 100, 100);

        q[7] = new Quadrado(140, 160, 100, 100);

        q[8] = new Quadrado(260, 160, 100, 100);

        q[9] = new Quadrado(380, 160, 100, 100);

        q[10] = new Quadrado(500, 160, 100, 100);

        q[11] = new Quadrado(620, 160, 100, 100);

        q[12] = new Quadrado(20, 280, 100, 100);

        q[13] = new Quadrado(140, 280, 100, 100);

        q[14] = new Quadrado(260, 280, 100, 100);

        q[15] = new Quadrado(380, 280, 100, 100);

        q[16] = new Quadrado(500, 280, 100, 100);

        q[17] = new Quadrado(620, 280, 100, 100);

        q[18] = new Quadrado(20, 400, 100, 100);

        q[19] = new Quadrado(140, 400, 100, 100);

        q[20] = new Quadrado(260, 400, 100, 100);

        q[21] = new Quadrado(380, 400, 100, 100);

        q[22] = new Quadrado(500, 400, 100, 100);

        q[23] = new Quadrado(620, 400, 100, 100);

        q[24] = new Quadrado(20, 520, 100, 100);

        q[25] = new Quadrado(140, 520, 100, 100);

        q[26] = new Quadrado(260, 520, 100, 100);

        q[27] = new Quadrado(380, 520, 100, 100);

        q[28] = new Quadrado(500, 520, 100, 100);

        q[29] = new Quadrado(620, 520, 100, 100);

        setQ(q);

    }

}

Agora vamos terminar a classe Janela(), nela vamos criar mais um método e sobrescrever outro, o método que vamos criar é o MyTela(), ele servirá para setar a posição dos quadradinhos na classe janela().

    public void myTela(){

        Fase f = new Fase();

        Quadrado[] q = new Quadrado[30];

        q = f.getQ();

        for(int i=0;i<30;i++){

            q[i].setCor(Color.BLACK);

            quad.add(q[i]);

        }

        q[0].setCor(Color.red);

    }

Pronto ele cria uma instancia de fase e adiciona no nosso ArrayList a posição de todos os quadradinhos, agora precisamos sobrescrever o método Paint(Graphics g) ele é responsável por desenhar a tela e como queremos desenhar os quadradinhos na tela então precisamos dar uma arrumada nele.

    @Override

    public void paint(Graphics g) {

        g.setColor(Color.WHITE);

        g.fillRect(0, 0, 20, 650);

        g.fillRect(120, 0, 20, 650);

        g.fillRect(240, 0, 20, 650);

        g.fillRect(360, 0, 20, 650);

        g.fillRect(480, 0, 20, 650);

        g.fillRect(600, 0, 20, 650);

        g.fillRect(720, 0, 20, 650);

        g.fillRect(0, 0, 740, 40);

        g.fillRect(0, 140, 740, 20);

        g.fillRect(0, 260, 740, 20);

        g.fillRect(0, 380, 740, 20);

        g.fillRect(0, 500, 740, 20);

        g.fillRect(0, 620, 740, 20);

        for(int i=0;i<30;i++){

            g.setColor(quad.get(i).getCor());

            g.fill3DRect(quad.get(i).getX(), quad.get(i).getY(), quad.get(i).getWidth(), quad.get(i).getHeight(), true);

        }

    }

Quase pronto vamos alterar o método inicializaComponentes() para chamar o MyTela() pois se não, não conseguiremos desenhar a tela sem a posição dos quadradinho correto???

    public void inicializaComponetes() {

        addMouseListener(this);

        addMouseMotionListener(this);

        setResizable(false);

        setSize(740, 640);

        setTitle(”:: Elzo Brito – Game ::”);
        setDefaultCloseOperation(EXIT_ON_CLOSE);

        myTela();

        show();  

    }

Como será que a tela ficou??

 

Só falta agora a lógica do game, como havíamos pensando antes, o nosso game é para pessoas que não sabem mexer com o mouse então quando passar o mouse no quadradinho vermelho ele tem que mudar de lugar forçando a pessoa a seguir-lo com o mouse, vamos então para a classe MinhaTela() pois é nela que iremos por um pouco da lógica do nosso game.

    public void pintarQuad(int x){

        try {

            if (quad.get(x – 1).getCor() == Color.ORANGE) {

                quad.get(x + 1).setCor(Color.RED);

                quad.get(x – 1).setCor(Color.PINK);

                quad.get(x).setCor(Color.ORANGE);

            }

        }

        catch(java.lang.ArrayIndexOutOfBoundsException ex){

            if(quad.get(0).getCor() == Color.RED){

                quad.get(1).setCor(Color.RED);

                quad.get(0).setCor(Color.ORANGE);

            }

        }

        catch(java.lang.IndexOutOfBoundsException ex){}

        repaint();

    }

Adicione esse método pintarQuad(int x), ele serve para pintar o quadrado onde passamos o mouse, se passamos o mouse no 1º quadradinho ele deve ficar amarelo e o 2º quadradinho deve ficar vermelho se passarmos o mouse no 2º quadradinho ele deve ficar amarelo o 3º quadradinho deve ficar vermelho e o 1º quadradinho fica rosinha.

Para finalizar precisamos do movimento do mouse correto? Isso então vamos criar uma classe para trabalharmos só com o movimento do mouse, vamos criar então a classe FaseMouseMove() nela trabalharemos o movimento do mouse sobre os quadradinhos, ela deve importar o MouseEvent, estender a MinhaTela() e sobrescrever o método mouseMoved(MouseEvent e).

import java.awt.event.MouseEvent;

public class FaseMouseMove extends MinhaTela{

    @Override

    public void mouseMoved(MouseEvent e) {

        for(int i=0;i<30;i++){

            if(e.getX() > quad.get(i).getX() && e.getX() < (quad.get(i).getWidth() + quad.get(i).getX()) && e.getY() > quad.get(i).getY() && e.getY() < (quad.get(i).getHeight()+quad.get(i).getY())){

                pintarQuad(i);

            }

        }

    }

}  

Esse IF gigante testa a condição do ponteiro do mouse, se o ponteiro do mouse estiver dentro do quadradinho ele chama então o metodo pintarQua(int i) passando o número do quadradinho que o mouse estar em cima, pronto o game esta criado basta apenas criar uma instancia da classe FaseMouseMove() na classe Main() e pronto é só jogarrrr

public class Main {

    public static void main(String[] args) {

        FaseMouseMove fmm = new FaseMouseMove();

    }

}

 

Pronto galera espero que tenham gostado do artigo, quem quiser fazer o download do projeto basta clicar no link abaixo, ele foi desenvolvido no NetBeans.

http://elzobrito.com/arquivos/desenvolvimento/gameeducativo/GameEducativo.zip