Hospedagem Profissional

Hospedagem Profissional
Clique aqui e ganhe US$ 10,00 para testar durante 1 mês a melhor hospedagem: Digital Ocean!

sexta-feira, 29 de maio de 2009

Iniciando no J2ME: Agenda sem banco

Pessoal, a seguir um ótimo post do pessoal do blog Java Móvel.

Exemplo prático para a utilização de form, list, alert, entre outros.

1) Crie um projeto Java ME – Aplicativo Móvel, com o nome de “agenda”. Vamos usarCLDC-1.0 e MIDP-2.0.

Caso não saiba como criar um projeto para um aplicativo Móvel veja o post (Como criar um projeto J2ME e desenvolver um Hello World).

2) No fluxo gerado aparece um form com um exitCommand. Clique sobre o form com o botão direito e vá em propiedades.
No campo título escreva “Agenda” e em nome da instância escreva formPrincipal.
Neste ponto o Netbeans já gerou este form que agora é o formPrincipal. E as alterações feitas pelo editor visual são feitas no código fonte pelo Netbeans.

3) Clique sobre o formPrincipal e vá em tela. Exclua o StringItem que tem na tela (Hello, Hello World). Para excluir clique com o botão direito do mouse e selecione excluir.

4) Clicando com o botão direito sobre a tela em branco do formPrincipal temos em Novo/Adicionar vários itens e comandos que podem ser adicionados. Insira dois Campos de texto (textField).

Clicando sobre o primeiro textField inserido, vá em propriedades e mude o rótulo para “Nome:” e o nome da instância para textFieldNome. Em restrições de entrada está ANY, que significa que pode ser qualquer caracter.
No segundo textField mude as propriedades para: “Telefone:”, “textFieldTel” e em restrições de entrada selecione “Numeric”, que restringe a entrada só para números.

5) Precisamos agora de botões que realizem os eventos de inserir e exibir os dados da agenda.
Então, clicando sobre o formPrincipal vá em Novo/Adicionar e selecione Comando Ok. Nas propriedades do Command mude o rótulo para “inserir” e o nome da instância para “cmdInserir”. Insira um outro Comando Ok com “Exibir” e “cmdExibir”.

A tela ficou desta forma:


6) Vamos agora programar a ação do cmdInserir. Em cima dele clique com o botão direito e vá em código fonte. Precisamos guardar o que o usuário digitou nos campos, para serem salvos.
Nós como ainda não utilizaremos Banco de dados, vamos guardar os dados em vetores. Para capturar o conteúdo dos textFields precisamos acessá-los através dogetTextFieldNome() e getTextFieldTel() e pegamos o seu texto com getString(). Estes dois primeiros métodos são os que criam e retornam os textFields que foi gerado no editor visual. Caso a aplicação seja feita a mão, estes métodos precisam ser implementados por você.

7) Criamos variáveis temporárias para alocar o nome e telefone que o usuário entrou. Portando o código fica o seguinte:

  1. else if (command == cmdInserir) { 
  2. String nomeTemp = getTextFieldNome().getString(); 
  3. String telTemp = getTextFieldTel().getString(); 

8) Agora nos atributos da classe vamos declarar dois vetores de String, um para os nomes e outro para os telefones. E também um contador para manipular as posições do vetor.

  1. private String[] nome = new String[100]; 
  2. private String[] tel = new String[100]; 
  3. private int contador = 0; 

9) Agora voltando ao código do cmdInserir vamos guardar no vetor os dados coletados que estão nas variáveis temporárias. Estas servem pra fazermos verificações futuramente.

  1. nome[contador] = nomeTemp; 
  2. tel[contador] = telTemp; 
  3. contador++; 

10) Podemos criar um alert pra exibir uma mensagem de erro quando os campos não estiverem preenchidos corretamente ou para exibir uma mensagem de sucesso quando inserir corretamente. Para isso vá no fluxo e clique sobre a área livre com o botão direito e selecione alert.

11) Dentro desse alert coloque um CommandBack, para voltar ao formPrincipal depois que exibir sua mensagem. Para isto vá na tela no alert e insira o comando da mesma forma que foi feito para o form, porém o agora é comando voltar e não comando ok.

12) No fluxo, puxe uma seta do comando Inserir para o alert. Uma via será criada com uma seta para o formPrincipal, como mostra a figura abaixo.


13) Insira um seta saindo do backCommand do alert até o formPrincipal. Agora quando clicar em Inserir o alert será chamado. Então vamos tratar os casos de sucesso ou erro.

14) O código fonte do cmdInserir agora fica da seguinte forma:

  1. if (command == cmdInserir) { 
  2. String nomeTemp = getTextFieldNome().getString(); 
  3. String telTemp = getTextFieldTel().getString(); 
  4. //Se um dos textFields estiver vazio quando aperta Inserir
  5. if(nomeTemp.equals("")||telTemp.equals("")){ 
  6. //seta a mensagem que aparecerá no alert. Mensagem de erro!
  7. getAlert().setString("Algum campo está vazio! Preencha corretamente"); 
  8. }else{ //se os campos estiverem preenchidos
  9. //guarda os dados nos vetores
  10. nome[contador] = nomeTemp; 
  11. tel[contador] = telTemp; 
  12. contador++; 
  13. //seta a mensagem do alert. Mensagem de sucesso!
  14. getAlert().setString("Os dados foram inseridos com sucesso!"); 
  15. //limpa os textFields para inserir novos dados
  16. getTextFieldNome().setString(""); 
  17. getTextFieldTel().setString(""); 
  18. switchDisplayable(getAlert(), getFormPrincipal()); 

15) Os dados já estão sendo guardados! Agora para exibi-los vamos usar um list. Na área livre do fluxo clique e insira uma lista. Insira nesta lista um CommandBack (Voltar), indo na tela do list e fazendo os procedimentos já explicados.

16) No fluxo puxe uma seta do commandBack do list para o formPrincipal. Podemos também mudar os títulos do alert e do list na propriedades destes.

17) Para a tela do list ser exibida quando selecionarmos Exibir devemos ligar o cmdExibir ao list, puxando uma seta deste comando situado no formPrincipal até o list. Desta forma nosso fluxo final é o seguinte:


18) Agora é só configurarmos nosso comando Exibir e a aplicação estará pronta. Vá ao código fonte do cmdExibir. Agora é só imprimirmos os vetores e exibi-los na tela. Antes de cada exibição é importante limpar a tela, para não listar dados repetidos.

  1. if (command == cmdExibirDados) { 
  2. getList().deleteAll(); //apaga o que está no list
  3. for(int i=0;i 
  4. //o vetor tem muitas posições e nem todas estão preenchidas então
  5. //só imprimimos se for diferente de null
  6. if(nome[i]!=null){ 
  7. //adiciona na lista o nome contido no vetor “-“ e o telefone
  8.       getList().append(nome[i] + " - " + tel[i], null); 


19) A aplicação está pronta!

Fonte : http://www.javamovel.com/2009/05/iniciando-no-j2me-agenda-sem-banco.html

terça-feira, 26 de maio de 2009

Qualquer semelhança com sua realidade, não é mera coincidência - Parte 03

assalto_en
Fonte : http://www.codecomics.com/

segunda-feira, 25 de maio de 2009

SUN lança JAVA Application Store

O CEO da SUN Microsystems anunciou o lançamento do JAVA Application Store (codinome “Project Vector”), descrito como um “network service” que conectará empresas de todos os tamanhos e tipos aos (quase bilhões de) programadores JAVA ao redor do mundo.
Schwartz escreveu em seu blog no dia 18/Maio:


“Vector…has the potential to deliver the world’s largest audience to developers and businesses leveraging Java and JavaFX,”.


De acordo com Schwartz, as aplicações candidatas serão submetidas para aprovação da SUN através de um “simple Web site” e apresentadas sobre termos de licenças GRATUITAS ou $$$.
Resumindo: todas as grandes empresas estão implementando seu modelo de SaS (Software as a Service). E todos salvem Steve Jobs.


Fonte: http://blog.faque.com.br

Link: http://news.cnet.com/8301-1001_3-10246527-92.html?part=rss&subj=news&tag=2547-1001_3-0-5

Por daltoncamargo

quarta-feira, 13 de maio de 2009

JavaFX: a máquina de RIAs da Sun

JavaFX: a máquina de RIAs da Sun

Voltada para o desenvolvimento de aplicações multimídia, a plataforma tem grande apelo para a parte do design


É um fato: uma das melhores linguagens para se trabalhar atualmente (e com maior demanda no mercado por profissionais especializados) e o Java. Queridinha das aplicações para web, celulares e smartphones, uma de suas características fundamentais é rodar em diferentes dispositivos, independente do sistema operacional que o comanda.

No final do ano passado, a Sun Microsystems disponibilizou uma versão da linguagem voltada especificamente para a construção de aplicações ricas, conhecidas como RIAs. Chamada de JavaFX (pronuncia-se em inglês), ela é voltada para o desenvolvimento de aplicações multimídia, com grande apelo para a parte do design.

“Um diferencial do JavaFX para outras RIAs é que ele já roda em cima de uma máquina virtual
Java, com todas as bibliotecas que a plataforma Java possui, independente do sistema operacional”, afirma Mauricio Leal, gerente de programas Sun Develop Network. Segundo o executivo, aplicações que foram desenvolvidas em Java podem ser facilmente incrementadas com o uso do JavaFX e a versão para dispositivos móveis será anunciada em breve.

Outra funcionalidade interessante da linguagem é a possibilidade de criar um applet - aplicativo que é executado dentro de um outro programa – que pode ser facilmente transferido para o desktop. Uma analogia possível é a criação de uma página na web com uma série de widgets para Windows Vista. Para que o usuário instale esse widget no seu desktop, basta arrastá-lo até a coluna da direita, onde ficam os aplicativos.

Alegria dos designers

Um dos principais objetivos da criação do JavaFX foi simplificar o máximo possível a plataforma de desenvolvimento. A facilidade em duas frentes: tanto para o programador conseguir usar recursos de design originais da ferramenta, como para os designers, que podem salvar criações feitas no Photoshop ou Illustrator na extensão JavaFX, por meio de um plugin instalados nesses programas.

“O JavaFX mistura Swing e Java 2D. A linguagem é muito simples. Mesmo para os profissionais que não têm conhecimento de Java, o aprendizado da tecnologia leva em torno de uma semana de estudo”, diz Leal.

Para conhecer mais sobre JavaFX e baixar o SDK e o plugin para designer, acesse o site JavaFX.com.

Por Bruno Ferrari, de INFO Online
em http://info.abril.com.br/professional/desenvolvimento/javafx-a-maquina-de-rias-da-su.shtml?2

Congresso Agile Brazil 2009 PUC-Rio