blob: 6d668b71c3452f7406dd93aa91e0ef84dc6ad778 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--
Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
-->
<HTML>
<HEAD>
<TITLE>Componentes padr&atilde;o do Visual Designer: criando telas de login no dispositivo m&oacute;vel - Tutorial do NetBeans Java ME</TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >
<link rel="stylesheet" type="text/css" href="../../../netbeans.css">
<meta name="author" content="Karol Harelzak">
</HEAD>
<BODY>
<a name="top"></a>
<H1>Componentes padr&atilde;o do Visual Designer: criando telas de login no dispositivo m&oacute;vel</H1>
<P>O Visual Mobile Designer (VMD) &eacute; uma interface gr&aacute;fica do NetBeans Mobility que permite criar aplicativos m&oacute;veis usando componentes de arrastar e soltar. O VMD permite definir o fluxo do aplicativo e criar a GUI usando os componentes fornecidos pelo IDE ou componentes que voc&ecirc; mesmo criar. O VMD cont&eacute;m muitos componentes de Interface de usu&aacute;rio (IU) padr&atilde;o que voc&ecirc; pode usar para criar aplicativos como Listas, Alertas, Formul&aacute;rios e Imagens. Ele tamb&eacute;m inclui componentes personalizados que simplificam a cria&ccedil;&atilde;o de recursos mais complexos, tais como Telas de espera, Telas de abertura, Itens de tabela, etc. </p>
<p>O componente personalizado Tela de login fornece uma interface do usu&aacute;rio &uacute;til com elementos padr&atilde;o como o campo Nome do usu&aacute;rio, o campo Senha e o bot&atilde;o Logon. Voc&ecirc; pode usar esse componente personalizado para criar a interface de logon para acessar recursos protegidos, tal como GSM banking.</p>
<p>Se ainda n&atilde;o estiver familiarizado com o NetBeans Mobility nem com o J2EE, antes de continuar seria recomend&aacute;vel ler o <A HREF="../../docs/javame/quickstart.html">Guia de in&iacute;cio r&aacute;pido do NetBeans Java ME MIDP</A>.</p>
<!--<p class="notes"><b>Observa&ccedil;&atilde;o:</b> se voc&ecirc; estiver usando o NetBeans IDE 6.8, consulte o tutorial <a href="../../68/javame/loginscreen.html">Criando telas de login no NetBeans IDE 6.8</a>.</p>-->
<p><b>Conte&uacute;do</b></p>
<img src="../../../images_www/articles/69/netbeans-stamp-69-70-71.png" class="stamp" alt="O conte&uacute;do desta p&aacute;gina se aplica ao NetBeans IDE 6.9 e posterior" title="O conte&uacute;do desta p&aacute;gina se aplica ao NetBeans IDE 6.9 e posterior" >
<ul class="class">
<li><a href="#sample-app">Instalando e executando o aplicativo de amostra</a></li>
<li><a href="#create-app">Criando um aplicativo com o componente personalizado Tela de login</a>
<ul>
<LI><A HREF="#create">Criando o projeto
</A>
</LI>
<LI><A HREF="#add">Adicionando pacotes e um MIDlet visual ao projeto</A>
</LI>
<LI><A HREF="#addcomponent">Adicionando componentes ao projeto</A>
</LI>
<LI><A HREF="#addcommands">Adicionando comandos ao componente Tela de login</A>
</LI>
<LI><A HREF="#connect">Conectando os componentes para criar um fluxo de aplicativo</A>
</LI>
<LI><A HREF="#storage">Adicionando c&oacute;digo-fonte extra</A>
</LI>
<LI><A HREF="#run">Executando o projeto</A>
</LI>
</ul></li>
<li><a href="#javadoc-loginscreen">Javadocs do componente Tela de login</a></li>
<li><a href="#see-also">Consulte tamb&eacute;m</a></li>
</ul>
<p><b>Para acompanhar este tutorial, s&atilde;o necess&aacute;rios os recursos e softwares listados abaixo.</b></p>
<table>
<tbody>
<tr>
<th class="tblheader" scope="col">Software ou recurso</th>
<th class="tblheader" scope="col">Vers&atilde;o necess&aacute;ria</th>
</tr>
<tr>
<td class="tbltd1"><a href="https://netbeans.org/downloads/index.html">NetBeans IDE com Java ME</a></td>
<td class="tbltd1">Vers&atilde;o 6.9 ou posterior</td>
</tr>
<tr>
<td class="tbltd1"><a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html">Java Development Kit</a> (JDK)</td>
<td class="tbltd1">Vers&atilde;o 6 ou vers&atilde;o 7</td>
</tr>
<tr>
<td class="tbltd1">GlassFish ou Tomcat </td>
<td class="tbltd1">Inclu&iacute;do no <b>Java EE</b> e em <b>todas</b> as instala&ccedil;&otilde;es do IDE</td>
</tr>
</tbody>
</table>
<a name="sample-app"></a>
<H2>Instalando e executando o aplicativo de amostra</H2>
<P>Antes de come&ccedil;ar, talvez voc&ecirc; queira ver o resultado final do
tutorial.</P>
<p>Este exemplo mostra como usar o componente personalizado Tela de logon em um aplicativo cliente e como conect&aacute;-la aos recursos do servidor usando acesso autenticado. Al&eacute;m do projeto do NetBeans Mobility, tamb&eacute;m precisamos do projeto da Web do NetBeans. Para completar este tutorial, &eacute; necess&aacute;rio saber como trabalhar com projetos da Web do
NetBeans e ter acesso local ou remoto a um servidor da aplica&ccedil;&atilde;o Web como
GlassFish ou Tomcat.
</p>
<P>Siga as etapas seguintes para instalar o aplicativo de amostra <tt>LoginScreenExample</tt>:</P>
<OL>
<LI>Baixe <A HREF="https://netbeans.org/projects/samples/downloads/download/Samples/Mobile/LoginScreenExample.zip">LoginScreenExample.zip
</A>. Esse download cont&eacute;m o projeto completo do NetBeans Mobility.</LI>
<LI>Baixe
<A HREF="https://netbeans.org/projects/samples/downloads/download/Samples/Mobile/LoginScreenServletExample.zip">LoginScreenServletExample.zip
</A>. Esse download cont&eacute;m o projeto completo do NetBeans Web.</LI>
<LI>Descompacte os arquivos.</LI>
<LI>No IDE, selecione <tt> Arquivo</tt> &gt; <tt>Abrir projeto</tt> e navegue at&eacute; a pasta que cont&eacute;m os arquivos descompactados com o projeto <tt>LoginScreenExample</tt>.</LI>
<li>Clique em Abrir projeto.</li>
<li>Repita as etapas 4 e 5 acima para abrir o projeto <tt>LoginScreenServletExample</tt>.</LI>
<LI>Os projetos devem se parecer visualmente com o seguinte:
<p class="align-center">
<IMG SRC="../../../images_www/articles/71/mobility/loginscreen/login-project.png" NAME="graphics1" ALT="Janela Projeto com o exemplo da Tela de logon e do Servlet da tela de logon aberto" BORDER=1> </p></li>
<LI>Na janela Projetos, clique com o bot&atilde;o direito no n&oacute; do projeto <tt>LoginScreenServletExample</tt> e selecione Executar projeto (ou pressione a tecla F6).</li>
<li>Clique com o bot&atilde;o direito do mouse no n&oacute; do projeto <tt>LoginScreenExample</tt> e escolha Executar projeto. Conforme o aplicativo &eacute; executado, uma janela do emulador se abre e exibe o aplicativo que est&aacute; sendo executado no emulador do dispositivo padr&atilde;o. </LI>
<LI>Na janela Emulador, clique no bot&atilde;o abaixo de &quot;Executar&quot;.<BR>O emulador exibe um componente Tela de abertura,
em seguida, Tela de logon, como mostrado: <p class="align-center"><IMG SRC="../../../images_www/articles/71/mobility/loginscreen/login-emulator.png" NAME="graphics3" ALT="Emulador WTK 2.5 exibindo o aplicativo de amostra Tela de login" BORDER=1> </p></li>
</OL>
<UL>
<LI>Mover o cursor para cima e para baixo permite que voc&ecirc; navegue entre os campos Logon e Senha.
</LI>
<li>Clique no bot&atilde;o central para habilitar o campo de texto selecionado para edi&ccedil;&atilde;o.</li>
<LI>Clique no campo Nome do usu&aacute;rio e digite &quot;john&quot;, em seguida, pressione o bot&atilde;o &quot;OK&quot; no emulador.
</LI>
<LI>Clique no campo Senha e digite &quot;amendoim&quot;, em seguida, pressione o bot&atilde;o &quot;OK&quot; no emulador.
</LI>
<LI>Clique no bot&atilde;o abaixo de &quot;Logon&quot; para terminar.
</LI>
<LI>Se o aplicativo se conectar ao servidor, voc&ecirc; ver&aacute; o componente <code>alert1</code> exibido na tela com uma mensagem &quot;Login Successful&quot; (Login bem-sucedido).
</LI>
</UL>
<p class="align-center"><a href="#top">in&iacute;cio</a></p>
<a name="create-app"></a>
<H2>Criando um aplicativo com o componente personalizado Tela de login</H2>
<P>Agora que voc&ecirc; viu o componente Tela de logon em a&ccedil;&atilde;o, vamos
voltar para o in&iacute;cio e criar essa aplica&ccedil;&atilde;o do zero. Neste
tutorial vamos criar apenas um cliente Java ME por meio do NetBeans
Mobility pack. Se voc&ecirc; deseja saber mais sobre o lado do servidor desta aplicativo, examine os c&oacute;digos-fonte do projeto <code>LoginScreenServletExample</code>. Para
criar um aplicativo cliente Java ME, adote um dos seguintes procedimentos:</P>
<OL>
<LI><A HREF="#create">Crie o projeto LoginScreenExample</A>
</LI>
<LI><A HREF="#add">Adicione pacotes e um MIDlet visual ao projeto LoginScreenExample</A>
</LI>
<LI><A HREF="#addcomponent">Adicione componentes ao LoginScreenExample</A>
</LI>
<LI><A HREF="#addcommands">Adicione comandos ao componente Tela de login</A>
</LI>
<LI><A HREF="#connect">Conecte os
componentes para criar um fluxo de aplicativo</A>
</LI>
<LI><A HREF="#storage">Adicione c&oacute;digo-fonte extra</A>
</LI>
<LI><A HREF="#run">Executar o projeto</A>
</LI>
</OL>
<H3><A NAME="create"></A>Criando o projeto
LoginScreenExample</H3>
<OL>
<LI>Escolha <tt>Arquivo</tt> &gt; <tt>Novo projeto (Ctrl-Shift-N)</tt>. Em Categorias, selecione Java ME. Em Projetos, selecione Aplicativo m&oacute;vel e clique em Pr&oacute;ximo.
</LI>
<LI>Indique <CODE>LoginScreenExample</CODE>
no campo Nome do projeto. Altere a Localiza&ccedil;&atilde;o do projeto para um diret&oacute;rio em seu sistema. Vamos chamar este diret&oacute;rio
de <code>$PROJECTHOME</code>.
</LI>
<LI>Desmarque a caixa de verifica&ccedil;&atilde;o Criar Hello MIDlet. Clique em Pr&oacute;ximo.
</LI>
<LI>Deixe o Sun Java Wireless Toolkit como a Plataforma do emulador selecionada. Clique em Pr&oacute;ximo e em Terminar.
<p class="notes"><b>Observa&ccedil;&atilde;o:</b> a pasta do projeto cont&eacute;m todos os c&oacute;digos-fonte e metadados do projeto, como o script Ant do projeto. O aplicativo &eacute; exibida na janela Design de fluxo do
Visual Mobile Designer. </p></LI>
</OL>
<H3><A NAME="add"></A>Adicionando pacotes e um
MIDlet visual ao projeto LoginScreenExample</H3>
<OL>
<LI>Selecione o projeto <CODE>LoginScreenExample</CODE> na janela Projeto e, a seguir, selecione<tt>Arquivo</tt> &gt; <tt>Novo arquivo (Ctrl-N)</tt> . Em Categorias, selecione Java. Em Tipos de arquivo,
selecione Pacote Java. Clique em Pr&oacute;ximo.
</LI>
<LI>Indique <CODE>loginscreenexample</CODE>
no campo Nome do pacote. Clique em Terminar.
</LI>
<LI>Selecione o pacote <CODE>loginscreenexample</CODE> na janela Projeto e, a seguir, selecione<tt>Arquivo</tt> &gt; <tt>Novo arquivo (Ctrl-N)</tt>. Em Categorias, selecione MIDP. Em Tipos de arquivo, selecione
MIDlet visual. Clique em Pr&oacute;ximo.
</LI>
<LI>Indique <CODE>LoginScreenExample</CODE> nos campos Nome do MIDlet e Nome da classe MIDP. Clique em Terminar.
</LI>
</OL>
<H3><A NAME="addcomponent"></A>Adicionando componentes ao
LoginScreenExample</H3>
<OL>
<LI>Alterne seu Visual MIDlet para a janela
Designer de fluxo. Arraste os seguintes componentes da Paleta de componentes e solte-os no Designer de fluxo:
<UL>
<LI>Tela de splash</LI>
<LI>Tela de espera</LI>
<LI>Tela de logon</LI>
<LI>Alerta (x2)</LI>
</UL></LI>
<LI>Clique em splashScreen e, na janela Propriedades, altere o valor da propriedade Texto de <tt>null</tt> para <tt>Exemplo da Tela de login</tt>
</LI>
<LI>No navegador, clique com o bot&atilde;o direito do mouse no componente alert e escolha Renomear no menu pop-up.</li>
<li>Na caixa de di&aacute;logo Renomear, digite <tt>alertFailure</tt> e clique em OK.</li>
<li>Repita as etapas 3 e 4 para renomear o componente alert1 como <tt>alertSuccess</tt>.</LI>
<LI>Volte para o componente alertFailure e, na janela Propriedades, altere o valor da propriedade String para <tt>Erro</tt>.
</LI>
<LI>Clique no componente waitScreen e, na janela Propriedades, altere o valor da propriedade Text para <tt>Aguarde...</tt>. </LI>
<li>Na janela Propriedades do componente waitScreen, clique no bot&atilde;o de retic&ecirc;ncias <img src="../../../images_www/articles/71/mobility/loginscreen/ellipsis-button.png" border=1 alt="bot&atilde;o de retic&ecirc;ncias"> contra a propriedade Tarefa.</li>
<li>Na caixa de di&aacute;logo Tarefa, clique em Adicionar.<br>&Eacute; adicionado o componente task1.</li>
<li>Clique em Ir para c&oacute;digo-fonte.<br>A Visualiza&ccedil;&atilde;o do c&oacute;digo-fonte mostra o c&oacute;digo do m&eacute;todo <tt>getTask()</tt>.</li>
<li>Clique em OK para fechar a caixa de di&aacute;logo Tarefa.</li>
<li>Na janela Visualiza&ccedil;&atilde;o do c&oacute;digo-fonte, localize a se&ccedil;&atilde;o <tt>// write task-execution user code here</tt> e substitua-a por <tt>login();</tt>. </li>
<li>Pressione Ctrl + S para salvar as edi&ccedil;&otilde;es. </li>
</OL>
<H3><A NAME="addcommands"></A>Adicionando comandos ao
LoginScreenExample</H3>
<OL>
<LI>Abra a Visualiza&ccedil;&atilde;o de fluxo.</LI>
<LI>Escolha o comando Sair na se&ccedil;&atilde;o
Comandos da Paleta do componente. Arraste-o e solte-o no componente <tt>loginScreen</tt> em Visualiza&ccedil;&atilde;o de fluxo. </LI>
</OL>
<H3><A NAME="connect"></A>Conectando componentes</H3>
<div>
<p>Na Visualiza&ccedil;&atilde;o de fluxo, clique no texto <tt>Started</tt> no Dispositivo m&oacute;vel e arraste-o at&eacute; o componente <tt>splashScreen</tt>. Da mesma forma, conecte os componentes como mostrado no gr&aacute;fico seguinte.</p>
<p class="align-center"><IMG SRC="../../../images_www/articles/71/mobility/loginscreen/login-flow.png" NAME="graphics4" ALT="Mostra o Designer de fluxo com componentes conectados por linhas de comando" BORDER=1>
</p>
</div>
<H3><A NAME="storage"></A>Adicionando c&oacute;digo-fonte</H3>
<OL>
<LI>Na se&ccedil;&atilde;o da declara&ccedil;&atilde;o do c&oacute;digo-fonte de <CODE>LoginScreenExample.java</tt> adicione o seguinte c&oacute;digo: <tt>private boolean login = false;</CODE>.</LI>
<LI>No final do c&oacute;digo-fonte, cole o seguinte c&oacute;digo: <br>
<PRE> private void login() throws IOException {
//URL
String url = &quot;http://localhost:8084/LoginScreenExample/&quot;
+ &quot;?username=&quot; + getLoginScreen().getUsername()
+ &quot;&amp;password=&quot; + getLoginScreen().getPassword();
//Clean up alertSuccess
getAlertSuccess().setString(&quot;&quot;);
//Connect to the server
HttpConnection hc = (HttpConnection) Connector.open(url);
//Authentication
if (hc.getResponseCode() == HttpConnection.HTTP_OK) {
login = true;
}
//Closing time...
hc.close();
//Take action based on login value
if (login) {
getAlertSuccess().setString(&quot;Login Succesfull&quot;);
} else {
getAlertFailure().setString(&quot;Wrong Username or Password&quot;);
}
login = false;
}</PRE>
<P>
Esse c&oacute;digo &eacute; respons&aacute;vel por enviar uma solicita&ccedil;&atilde;o com informa&ccedil;&otilde;es sobre o nome de usu&aacute;rio e a senha para o servidor e por receber uma resposta se o processo de logon tiver sido bem sucedido. Voc&ecirc; pode corrigir as importa&ccedil;&otilde;es do c&oacute;digo-fonte, pressionando Ctrl+Shift+I.</P></LI>
</OL>
<H3><A NAME="run"></A>Executando o projeto</H3>
<div>
<p>Antes de executar o aplicativo cliente, verifique se o aplicativo do lado do servidor est&aacute; implantada e em execu&ccedil;&atilde;o.</p>
<p> Para executar o aplicativo cliente m&oacute;vel, selecione <tt>Executar</tt> &gt; <tt>Executar o projeto principal</tt> ou pressione F6 para executar o projeto principal.</p>
</div>
<p class="align-center"><a href="#top">in&iacute;cio</a></p>
<a name="javadoc-loginscreen"></a>
<H2>Javadocs do componente Tela de login</H2>
<P>O NetBeans IDE oferece Javadocs de API do componente Tela de logon, assim como outros componentes que voc&ecirc; pode usar no VMD. Para ler os Javadocs do componente Tela de login, execute as etapas abaixo:</P>
<OL>
<li>Coloque o cursor no componente <tt>LoginScreen</tt> no c&oacute;digo-fonte e pressione Ctr-Shift-Espa&ccedil;o (ou selecione <tt>C&oacute;digo-fonte</tt> &gt; <tt>Exibir documenta&ccedil;&atilde;o</tt>).<br>
O Javadoc deste elemento &eacute; exibido em uma janela pop-up. </li>
<li>Clique em Exibir documenta&ccedil;&atilde;o no &iacute;cone de navegador da Web externo (<img src="../../../images_www/articles/71/mobility/loginscreen/show-doc-button.png" alt="Exibir documenta&ccedil;&atilde;o no navegador da Web externo">) na janela pop-up para obter informa&ccedil;&otilde;es detalhadas sobre o componente <tt>LoginScreen</tt> em seu navegador.</li>
</OL>
<p class="align-center"><a href="#top">in&iacute;cio</a></p>
<div class="feedback-box"><a href="/about/contact_form.html?to=6&subject=NetBeans%20Java ME%20Custom%20Component:%20Login%20Screen">Envie-nos seus coment&aacute;rios</a><br style="clear:both;" ></div>
<br style="clear:both;" >
<a name="see-also"></a>
<H2>Consulte tamb&eacute;m</H2>
<UL>
<li><a href="smscomposer.html">Componentes padr&atilde;o do Visual Mobile Designer: criando um aplicativo SMS Composer</a></li>
<li><a href="filebrowser.html">Componentes padr&atilde;o do Visual Mobile Designer: criando um navegador de arquivo de dispositivo m&oacute;vel</a></li>
<li><a href="pimbrowser.html">Componentes padr&atilde;o do Visual Mobile Designer: criando um aplicativo de gerenciador de informa&ccedil;&otilde;es pessoais</a></li>
<li><a href="splashscreen.html">Componentes padr&atilde;o do Visual Mobile Designer: usando telas de splash em aplicativos Java ME</a></li>
<li><a href="waitscreen.html">Componentes personalizados do Visual Mobile Designer: Criando telas de espera para aplicativos m&oacute;veis</a></li>
<li><a href="tableitem.html">Componentes padr&atilde;o do Visual Mobile Designer: usando itens de tabela em aplicativos Java ME</a></li>
<li><a href="http://wiki.netbeans.org/VisualMobileDesignerPalatteReference">Reference: Visual Mobile Designer Palette Guide</a></li>
</UL>
<p class="align-center"><a href="#top">in&iacute;cio</a></p>
</BODY>
</HTML>