Obrigado por visitar a devmedia.com.br!

Precisamos de você para divulgar nossos vídeos e cursos gratuitos para a comunidade.

Se você gosta da devmedia.com.br por favor dê-nos o seu clique para o Google+ e ajude outros desenvolvedores ao redor do mundo.



Obrigado por seu apoio!
Equipe DevMedia

sair sem compartilhar (x)
DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:

Java ME SDK 3.0 Support: J2ME - Desenvolvimento ágil com LWUIT - Parte 2

Neste artigo Demonstro como utilizar essa fantástica biblioteca , chamada LWUIT

                Legal pessoal, gostaria de agradecer primeiramente os numerosos acessos que tivemos nessa série de artigos dessa maravilhosa ferramenta. Então vamos ao que interessa.

LWUIT com a Java ME SDK 3.0 Support

                A Java ME SDK3.0 possui uma base padrão para desenvolvimento de aplicações Java, claro que nesse caso, para dispositivos móveis.

                Oferecendo uma gama de recursos para desenvolvimento que dão ao desenvolvedor um ambiente poderoso, robusto e conveniente para construir aplicações.

                Claro que a biblioteca LWUIT pode ser usada em sua plataforma tradicional do Java ME. Mas também é disponibilizada ao desenvolvedor uma IDE rica, afim de ser um facilitador para os desenvolvedores.

                Abaixo demonstro uma aplicação demonstrativa. Onde vemos que já possuímos os recursos necessários para a estrutura de um projeto que permitem ao desenvolvedor começar a criar aplicações baseadas na LWUIT , isso em poucos minutos.

Java ME SDK 3.0 Running the LWUIT Demo

 

 

Nova LWUIT 1.3

 

                A nova LWUIT 1.3 foi escrita em dezembro de 2009 e oferece várias características de melhorias:

LWUIT 1.3 Características e Melhorias:  

NOVO Controle de UI: Layout Table e componente UI tabular complexo, apoio por características como medir rows/columns. 

NOVO Controle de UI: Apoio de Teclado Virtual

NOVO Controle de UI: Apoios de Componente de TreeView aninharam elementos expandidos ou não(nos)

Toque Melhorias de Dispositivo: Botoes, Menus, enroll, cinético melhorado, toque tátil (vibração em toque) 

Melhorias no ComboBox

Criador de Themes(antigamente conhecido como LWUIT Designer/Resource Editor)

Especificação de Arquivo de recurso 

Lista de eventos usando Renderer " que faz " lógica pinta primeiro para os fundos do renderers, e então a seleção e primeiro plano 

Além do LWUIT oficial 1.3 release, o LWUIT de codigo-fonte aberto,  seu repositório mantem continuamente e melhorias adicionais como uma versão de pre-liberação do componente de HTML. O componente de HTML permite aplicações para fazer HTML que conforma a XHTML Perfil 1.0 Móvel facilmente.    

Table Component

            Esse componente permite de modo sofisticado a criação de tabelas, movimentação de linhas (rows) e colunas (columns), manipulação de eventos, e muito mais. Veja abaixo:

Screen Shot of Demo of Table Component

               

Abaixo demonstro a criação de uma Table complete que consiste um cabeçalho, em uma row, e três colunas, onde a primeira e a segunda coluna serão editáveis. Cada célula de dados pode ser editável também. Tambem podemos vê-la em modo horizontal ou vertical  e habilitar a propriedade scrollable. Segue o código:

public class TableDemo extends MIDlet implements ActionListener {

 

    public void startApp() {

 

        Form form;

        Resources res;

 

        Display.init(this); // initialize LWUIT

 

        // Load theme

        try {

            res = Resources.open("/res/businessTheme.res");

            UIManager.getInstance().setThemeProps(res.getTheme(res.getThemeResourceNames()[0]));

        } catch (IOException ioe) {

            // error loading theme

        }

 

        // Create main form and add Exit command

        form = new Form("Table Demo");

        form.addCommand(new Command("Exit"));

        form.setCommandListener(this);

 

        // Create scrollable table with header and columns 1 and 2 editable

        TableModel model = new DefaultTableModel(

            new String[] {"Unedit.", "Editable", "Multiline"},

            new Object[][] {

             {"Row 1", "Data 1", "Multi-line\ndata"},

             {"Row 2", "Data 2", "More multi-\nline data"},

             {"Row 3", "Data 3", "Data\non\nevery\nline"},

             {"Row 4", "Data 4", "Data (no span)"},

             {"Row 5", "Data 5", "More data"},

             {"Row 6", "Data 6", "More data"},

            }) {

            public boolean isCellEditable(int row, int col) {

                return col != 0;

            }

        };

        Table table = new Table(model);

        table.setScrollable(true);

        table.setIncludeHeader(true);

 

        // Add table to form and show

        form.addComponent(table);

        form.show();

    }

 

    public void pauseApp() {

    }

 

    public void destroyApp(boolean unconditional) {

    }

 

    public void actionPerformed(ActionEvent ae) {

            // only action is from Exit command

            destroyApp(true);

            notifyDestroyed();

    }

}

 

Rodando esse código, seguindo esses passos abaixo:

·         Faça o download e instale the Java ME SDK 3.0 aqui: http://java.sun.com/javame/downloads/sdk30.jsp

·         Faça o download the  TableDemo

project from here: http://tinyurl.com/348jn29 e abra the arquivo zip

·         Abra o TableDemo project (o Java ME SDK 3.0 deve reconhecer o diretório TableDemo como um projeto)

·         Tenha certeza que seu emulador tenha "Mobile Media API 1.1" ativado.

·         Clique em Run para rodar o projeto clicando no ícone de triangulo verde(play/run).

 

Lightweight Virtual Keyboard Support

 

Dispositivos de toque-tela podem tirar proveito agora da funcionalidade de teclado virtual disponível em LWUIT. Um Teclado Virtual que pode ser ligado a um campo de texto deslizará para cima quando o usuário clicar ou toques o campo de texto para introduzir um caracter.

O Teclado Virtual apóia vários modos de contribuição diferentes (texto, símbolos, números), keymaps diferente para planos de teclado feito sob medida, chaves especiais, e outras características sofisticadas.

 

Graphic: Screen Shot of Virtual Keyboard Demo on Startup and Screen Shot After User Clicks/Touches the Text Field ("Click for keyboard")

Usando um Teclado Virtual em uma aplicação é um facilitador. Esta aplicação de exemplo mostra uma aplicação de LWUIT básica com um título, um menu de SAÍDA, um campo de texto por entrar em texto, e um rótulo para exibir o texto:

public class VKBDemo extends MIDlet implements ActionListener, FocusListener {
    Form form;
    Resources res;
    TextField textField;
 
    public void startApp() {
 
        VKBImplementationFactory.init(); // initialize virtual keyboard
        Display.init(this);  // initialize LWUIT
 
        // Load theme
        try {
            res = Resources.open("/res/businessTheme.res");
            UIManager.getInstance().setThemeProps(res.getTheme(res.getThemeResourceNames()[0]));
        } catch (IOException ioe) {
            // error loading theme
        }
 
        // Create main form and add Exit command
        form = new Form("Virtual Keyboard Demo");
        form.addCommand(new Command("Exit"));
        form.setCommandListener(this);
 
        // Create text field with constraints
        textField = new TextField("Click for keyboard");
        textField.setConstraint(TextField.ANY);
        textField.setInputModeOrder(new String[]{"Abc"});
        textField.setFocusable(false); // only one component: prevent being focused right away
        textField.addFocusListener(this);
 
        // Create virtual keyboard and bind to text field
        VirtualKeyboard vkb = new VirtualKeyboard();
        vkb.setInputModeOrder(new String[] {VirtualKeyboard.QWERTY_MODE} );
        VirtualKeyboard.bindVirtualKeyboard(textField, vkb);
 
        // Add text field to form and show
        form.addComponent(textField);
        form.show();   
        textField.setFocusable(true); // after initial display, make focusable
    }
    public void pauseApp() {
    }
    public void destroyApp(boolean unconditional) {
    }
    public void actionPerformed(ActionEvent ae) {
        // only action is from Exit command
        destroyApp(true);
        notifyDestroyed();
    }
    public void focusGained(Component cmp) {
        // If user selects text field, clear it
        if (cmp == textField) {
            ((TextField)cmp).clear();
        }
    }
    public void focusLost(Component cmp) {
    }
}

 No próximo artigo finalizamos essa série e demonstrarei o compoente HTML support. Abraços++ e até a próxima.

Carlos Mazzi
Carlos@jcsistemas.com


 

 





    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!



[Este post ainda não foi associado a uma sequência]
Autor
Carlos Eduardo Domingues Mazzi

Especialista em Gestão de Projetos, Bacharelado em Análise de Sistemas, Professinal Linux Certified, ITILv3- Certified, desenvolvedor e arquiteto de sistemas Java, delphi e C#. Sócio Fundador das empresas JC Sistemas.


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
0   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]
Este post está disponível somente para quem possui Créditos DevMedia. (Ele não está associado a nenhuma publicação DevMedia).


  Conheça os planos de créditos DevMedia e visualize esse post agora mesmo!

Plano conveniência – Neste plano este post custa R$ 0,00 (Compre agora)
Esse plano permite que você compre somente um post, pagando por ele seu preço sem desconto.

Plano ocasional: Aqui este post custa: R$ -1,00 (assinante) ou R$ -1,00 (não-assinante)
Este plano é ideal para quem tem interesse em mais de um post. Você compra um mínimo de R$ 50,00 em créditos e ganha, em média, 50% de desconto no preço do post. Compre Créditos agora!

Assinatura de Créditos (Plano econômico) – Aqui este post custa R$ -1,00
Este plano é ideal para quem tem interesse em muitos posts. Com esse plano você compra R$ 180,00 em créditos e ganha, em média, 80% de desconto no preço do post. Assine este plano agora!

> Saiba mais sobre o Sistema de Créditos DevMedia
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03