Terapad
Created with the free version of Terapad, ads can be removed from $14.15 a month Easy Website Creation Sign Up Now

TouchScreen em Java ME

User photo not available By Ricardo Ogliari in Java ME
Published: Thursday, 16 August 07 - 04:07 AM (GMT)
Last Updated: Thursday, 16 August 07 - 05:23 AM (GMT)

 O surgimento do IPhone da Apple mudou vários conceitos, um deles sem dúvida é a construção de interfaces para pequenos dispositivos, o uso de telas touch screen se tornou uma questão de sobrevivência. Aliado a estas mudanças culturais, aproveitei para escrever um breve resumo sobre como criar aplicativos Java ME que respondam a telas touch screen.

Primeiramente, parto do pressuposto de que o leitor já conheça a plataforma Java ME, que compreenda a diferença entre a interface de alto nível, através das classes derivadas de Screen, e a interface de baixo nível, com a classe Canvas. Se o leitor não conhece estes termos que acabei de citar, recomendo uma pausa neste texto e uma breve lida sobre a plataforma Java ME.

Quando criamos uma classe que herde da classe Screen, podemos utilizar alguns métodos da própria classe, sendo que, os mais conhecidos são aqueles que gerenciam os eventos relacionados ao uso das teclas do dispositivo, como o acionamento das teclas direcionais, esses métodos são:

  • keyPressed()
  • keyRepeated()
  • keyReleased()

De maneira análoga, existem os métodos que respondem aos eventos de toque nas telas touch screen, sendo que, também é preciso de uma classe que herde diretamente da classe Canvas. Os métodos são esses:

  • pointerPressed()
  • pointerDragged()
  • pointerReleased()

Os três métodos citados acima recebem como parâmetro dois números inteiros, que representam a coordenada x, y de onde ocorrer o toque na tela. Pronto, o código para tratamento de touch screen é esse e nada mais. A listagem de código abaixo mostra uma MIDlet que apenas mostra um círculo azul no local do toque na tela.

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class Midlet extends MIDlet {
    private Display display;
    private Tela tela;
   
    public void startApp() {
        display = Display.getDisplay(this);
       tela = new Tela();
      display.setCurrent(tela);
    }
   
    public void pauseApp() {
    }  
    public void destroyApp(boolean unconditional) {
    }
}

class Tela extends Canvas
{
    int x = -1;
    int y = 0;
   
    protected void paint(Graphics g) {
        g.setColor(255, 255, 255);
        g.fillRect(0, 0, getWidth(), getHeight());
       
        g.setColor(0, 0, 255);
        if (x > 0)
        {
            g.fillArc(x-10, y-10, 20, 20, 0, 360);
        }
    }
   
    public void pointerDragged(int x, int y)
    {}
   
    public void pointerPressed(int x, int y)
    {
        this.x = x;
        this.y = y;
       
        repaint();
    }
   
    public void pointerReleased(int x, int y)
    {}
}


Porém, para o exemplo acima funcionar corretamente no emular da Sun, é preciso editar o arquivo DefaulColorPhone.properties (se estiver usando o emulador padrão). No meu caso, o caminho para este arquivo é C:\WTK25\wtklib\devices\DefaultColorPhone. Ao abrir este arquivo procure e altere a propriedade touch_screen para true:

touch_screen=true

Feito isso, reinicie o emulador. Agora sim, a diversão está concluída.

Att.
Ricardo S. Ogliari (Ping)
Email this  |  Submit to digg  |  Add to del.icio.us


3 Comments so far:

Leave a comment
DefaultColorPhone.properties Não existe (...) Junior 03/13/09
Pegoue funfou Gil 03/13/09
Pra que é que serve isso mesmo? _Rich_ 07/23/09



Top | Reply to this

Title: DefaultColorPhone.properties Não existe.....
Author: Junior
Date Posted: 13 Mar 2009 05:18 PM (GMT)

Esse aqui não exixte no meu projeto ....  o meu caminho é em arquivos em programas  .....



Top | Reply to this

Title: Pegoue funfou
Author: Gil
Date Posted: 13 Mar 2009 05:31 PM (GMT)

É isso ae galera pegou e funfou direitinho  sem bronca  Yahoooooooo

 Só tem que conhecer um basico (bem basicola memo) de java e seguir as instruções....

Alquem sabe ondi existe mais tutoriais de java Touch Sreen ??? 





Top | Reply to this

Author: _Rich_
Date Posted: 23 Jul 2009 03:26 AM (GMT)

Pra que é que serve isso mesmo?




Have your say on this article:

Help  Name:
Help  Email address:

Help  Comment title:

Help  Your comment:

Help  Your homepage:

 



<-- Back