<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Javafriend&#039;s</title>
	<atom:link href="http://javafriend.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://javafriend.wordpress.com</link>
	<description>Conectando o Java ao mundo externo</description>
	<lastBuildDate>Fri, 23 Sep 2011 12:15:53 +0000</lastBuildDate>
	<language>pt-br</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='javafriend.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Javafriend&#039;s</title>
		<link>http://javafriend.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://javafriend.wordpress.com/osd.xml" title="Javafriend&#039;s" />
	<atom:link rel='hub' href='http://javafriend.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Enviando E-mail com Mail API</title>
		<link>http://javafriend.wordpress.com/2009/09/24/enviando-email-com-java/</link>
		<comments>http://javafriend.wordpress.com/2009/09/24/enviando-email-com-java/#comments</comments>
		<pubDate>Thu, 24 Sep 2009 13:16:45 +0000</pubDate>
		<dc:creator>Roberto Santos Marques da Silva</dc:creator>
				<category><![CDATA[Desktop]]></category>
		<category><![CDATA[POO]]></category>
		<category><![CDATA[activation]]></category>
		<category><![CDATA[Authenticator]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[enviar email]]></category>
		<category><![CDATA[javamail]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[mailapi]]></category>
		<category><![CDATA[Message]]></category>
		<category><![CDATA[MimeMessage]]></category>
		<category><![CDATA[Porperties]]></category>
		<category><![CDATA[send mail]]></category>
		<category><![CDATA[Session]]></category>
		<category><![CDATA[smtp]]></category>
		<category><![CDATA[Transport]]></category>

		<guid isPermaLink="false">http://javafriend.wordpress.com/?p=56</guid>
		<description><![CDATA[Veremos de forma simples e prática como enviar e-mail autenticado através do Mail API. Para executar o exemplo abaixo é necessário adicionar no seu projeto as Libs smtp.jar (Biblioteca que provê classes para enviar e-mails via protocolo SMTP) além da biblioteca activation.jar (JavaBeans Activation) e por último mailapi.jar (Provê as classes necessárias para manipulação de mensagens, cabeçalhos, anexos e [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=javafriend.wordpress.com&amp;blog=8373301&amp;post=56&amp;subd=javafriend&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Veremos de forma simples e prática como enviar e-mail autenticado através do Mail API. Para executar o exemplo abaixo é necessário adicionar no seu projeto as Libs <strong>smtp.jar</strong> (Biblioteca que provê classes para enviar e-mails via protocolo SMTP) além da biblioteca <strong>activation.jar</strong> (JavaBeans Activation) e por último <strong>mailapi.jar</strong> (Provê as classes necessárias para manipulação de mensagens, cabeçalhos, anexos e etc). Para maiores informações veja a página oficial: <a href="http://java.sun.com/products/javamail">http://java.sun.com/products/javamail</a></p>
<p>Segue o código, posteriormente abordaremos os pontos principais.</p>
<div><!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --><span style="color:#008080;">1</span> <span style="color:#0000FF;">package</span><span style="color:#000000;"> com.wordpress.javafriend.enviaemail;<br />
</span><span style="color:#008080;">2</span> <span style="color:#000000;"><br />
</span><span style="color:#008080;">3</span> <span style="color:#0000FF;">import</span><span style="color:#000000;"> java.util.Properties;<br />
</span><span style="color:#008080;">4</span> <span style="color:#0000FF;">import</span><span style="color:#000000;"> javax.mail.Authenticator;<br />
</span><span style="color:#008080;">5</span> <span style="color:#0000FF;">import</span><span style="color:#000000;"> javax.mail.Message;<br />
</span><span style="color:#008080;">6</span> <span style="color:#0000FF;">import</span><span style="color:#000000;"> javax.mail.PasswordAuthentication;<br />
</span><span style="color:#008080;">7</span> <span style="color:#0000FF;">import</span><span style="color:#000000;"> javax.mail.Session;<br />
</span><span style="color:#008080;">8</span> <span style="color:#0000FF;">import</span><span style="color:#000000;"> javax.mail.Transport;<br />
</span><span style="color:#008080;">9</span> <span style="color:#0000FF;">import</span><span style="color:#000000;"> javax.mail.internet.InternetAddress;<br />
</span><span style="color:#008080;">10</span> <span style="color:#0000FF;">import</span><span style="color:#000000;"> javax.mail.internet.MimeMessage;<br />
</span><span style="color:#008080;">11</span> <span style="color:#000000;"><br />
</span><span style="color:#008080;">12</span> <span style="color:#0000FF;">public</span><span style="color:#000000;"> </span><span style="color:#0000FF;">class</span><span style="color:#000000;"> EnviaEmail {<br />
</span><span style="color:#008080;">13</span> <span style="color:#000000;"><br />
</span><span style="color:#008080;">14 </span><span style="color:#000000;">@SuppressWarnings(</span><span style="color:#000000;">&#8220;</span><span style="color:#000000;">static-access</span><span style="color:#000000;">&#8220;</span><span style="color:#000000;">)<br />
</span><span style="color:#008080;">15 </span><span style="color:#0000FF;">public</span><span style="color:#000000;"> </span><span style="color:#0000FF;">static</span><span style="color:#000000;"> </span><span style="color:#0000FF;">void</span><span style="color:#000000;"> enviarEmail() </span><span style="color:#0000FF;">throws</span><span style="color:#000000;"> Exception {<br />
</span><span style="color:#008080;">16 </span> <span style="color:#000000;">Properties props </span><span style="color:#000000;">=</span><span style="color:#000000;"> System.getProperties();<br />
</span><span style="color:#008080;">17</span> <span style="color:#000000;">props.put(</span><span style="color:#000000;">&#8220;</span><span style="color:#000000;">mail.smtp.host</span><span style="color:#000000;">&#8220;</span><span style="color:#000000;">, </span><span style="color:#000000;">&#8220;</span><span style="color:#000000;">smtp.dominio.br</span><span style="color:#000000;">&#8220;</span><span style="color:#000000;">);<br />
</span><span style="color:#008080;">18</span> <span style="color:#000000;">props.put(</span><span style="color:#000000;">&#8220;</span><span style="color:#000000;">mail.smtp.auth</span><span style="color:#000000;">&#8220;</span><span style="color:#000000;">, </span><span style="color:#000000;">&#8220;</span><span style="color:#000000;">true</span><span style="color:#000000;">&#8220;</span><span style="color:#000000;">); </span><span style="color:#008000;">//</span><span style="color:#008000;"> Define que o e-mail será enviado de modo autenticado</span><span style="color:#008000;"><br />
</span><span style="color:#008080;">19</span> <span style="color:#000000;"><br />
</span><span style="color:#008080;">20</span> <span style="color:#000000;">Authenticator auth </span><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#0000FF;">new</span><span style="color:#000000;"> Authenticator() {<br />
</span><span style="color:#008080;">21</span> <span style="color:#000000;"><br />
</span><span style="color:#008080;">22</span> <span style="color:#008080;"> </span> <span style="color:#008080;"> </span> <span style="color:#000000;">@Override<br />
</span><span style="color:#008080;">23</span> <span style="color:#008080;"> </span> <span style="color:#008080;"> </span> <span style="color:#0000FF;">public</span><span style="color:#000000;"> PasswordAuthentication getPasswordAuthentication() {<br />
</span><span style="color:#008080;">24</span> <span style="color:#008080;"> </span> <span style="color:#008080;"> </span> <span style="color:#0000FF;">return</span><span style="color:#000000;"> </span><span style="color:#0000FF;">new</span><span style="color:#000000;"> PasswordAuthentication(</span><span style="color:#000000;">&#8220;</span><span style="color:#000000;">e-mail</span><span style="color:#000000;">&#8220;</span><span style="color:#000000;">, </span><span style="color:#000000;">&#8220;</span><span style="color:#000000;">senha</span><span style="color:#000000;">&#8220;</span><span style="color:#000000;">);<br />
</span><span style="color:#008080;">25</span> <span style="color:#008080;"> </span> <span style="color:#008080;"> </span> <span style="color:#000000;">}<br />
</span><span style="color:#008080;">26</span> <span style="color:#008080;"> </span> <span style="color:#008080;"> </span><span style="color:#000000;">};<br />
</span><span style="color:#008080;">27</span> <span style="color:#000000;"><br />
</span><span style="color:#008080;">28</span> <span style="color:#008080;"> </span><span style="color:#000000;">Session session </span><span style="color:#000000;">=</span><span style="color:#000000;"> Session.getInstance(props, auth);<br />
</span><span style="color:#008080;">29      <span style="color:#008080;"> </span></span><span style="color:#000000;">Message message </span><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#0000FF;">new</span><span style="color:#000000;"> MimeMessage(session);<br />
</span><span style="color:#008080;">30</span> <span style="color:#008080;"> </span><span style="color:#000000;">message.setFrom(</span><span style="color:#0000FF;">new</span><span style="color:#000000;"> InternetAddress(</span><span style="color:#000000;">&#8220;</span><span style="color:#000000;">O seu endereço de e-mail</span><span style="color:#000000;">&#8220;</span><span style="color:#000000;">, </span><span style="color:#000000;">&#8220;</span><span style="color:#000000;">Nome que o destinátario irá visualizar</span><span style="color:#000000;">&#8220;</span><span style="color:#000000;">));<br />
</span><span style="color:#008080;">31</span> <span style="color:#000000;"><br />
</span><span style="color:#008080;">32</span> <span style="color:#008080;"> </span><span style="color:#000000;">message.addRecipient(Message.RecipientType.TO,<br />
</span><span style="color:#008080;">33</span> <span style="color:#0000FF;">new</span><span style="color:#000000;"> InternetAddress(</span><span style="color:#000000;">&#8220;</span><span style="color:#000000;">Endereço do Destinátario</span><span style="color:#000000;">&#8220;</span><span style="color:#000000;">, </span><span style="color:#000000;">&#8220;</span><span style="color:#000000;">Nome do destinátario</span><span style="color:#000000;">&#8220;</span><span style="color:#000000;">));<br />
</span><span style="color:#008080;">34      <span style="color:#008080;"> </span></span><span style="color:#000000;">message.setSubject(</span><span style="color:#000000;">&#8220;</span><span style="color:#000000;">Aqui o Assunto</span><span style="color:#000000;">&#8220;</span><span style="color:#000000;">);<br />
</span><span style="color:#008080;">35</span> <span style="color:#008080;"> </span><span style="color:#000000;">message.setContent(</span><span style="color:#000000;">&#8220;</span><span style="color:#000000;">Aqui a mensagem ou conteúdo do e-mail</span><span style="color:#000000;">&#8220;</span><span style="color:#000000;">, </span><span style="color:#000000;">&#8220;</span><span style="color:#000000;">text/html</span><span style="color:#000000;">&#8220;</span><span style="color:#000000;">);<br />
</span><span style="color:#008080;">36</span> <span style="color:#000000;">Transport smtp </span><span style="color:#000000;">=</span><span style="color:#000000;"> session.getTransport(</span><span style="color:#000000;">&#8220;</span><span style="color:#000000;">smtp</span><span style="color:#000000;">&#8220;</span><span style="color:#000000;">);<br />
</span><span style="color:#008080;">37<span style="color:#008080;"> </span> </span><span style="color:#000000;">smtp.send(message);<br />
</span><span style="color:#008080;">38 </span><span style="color:#000000;">}<br />
</span><span style="color:#008080;">39</span> <span style="color:#000000;"><br />
</span><span style="color:#008080;">40</span> <span style="color:#0000FF;">public</span><span style="color:#000000;"> </span><span style="color:#0000FF;">static</span><span style="color:#000000;"> </span><span style="color:#0000FF;">void</span><span style="color:#000000;"> main(String[] args) {<br />
</span><span style="color:#008080;">41</span> <span style="color:#0000FF;">try</span><span style="color:#000000;"> {<br />
</span><span style="color:#008080;">42</span> <span style="color:#000000;">enviarEmail();<br />
</span><span style="color:#008080;">43</span> <span style="color:#000000;">} </span><span style="color:#0000FF;">catch</span><span style="color:#000000;"> (Exception ex) {<br />
</span><span style="color:#008080;">44</span> <span style="color:#000000;">System.out.println(</span><span style="color:#000000;">&#8220;</span><span style="color:#000000;">Não foi possivel enviar o e-mail </span><span style="color:#000000;">&#8220;</span><span style="color:#000000;">);<br />
</span><span style="color:#008080;">45</span> <span style="color:#000000;">ex.printStackTrace();<br />
</span><span style="color:#008080;">46</span> <span style="color:#000000;">}<br />
</span><span style="color:#008080;">47</span> <span style="color:#000000;">}<br />
</span><span style="color:#008080;">48</span> <span style="color:#000000;">}<br />
</span><span style="color:#008080;">49<br />
</span></div>
<p>Veja que no código acima no método enviarEmail()<strong> </strong> é declarado um objeto <em>props</em> da classe <strong>Properties</strong>, este que recebe a instância  através do método estático  <em>getProperties()</em> da classe System. Este metódo retorna um objeto do tipo Properties com propriedades e valores do Sistema semelhante as varíveis de ambiente do Sistema Operacional. Depois adicionamos mais duas propriedades, uma referente ao domínio do servidor SMTP e outro definindo que o e-mail será autenticado. Posteriormente é instanciado a classe  <strong>Authenticator</strong> que encapsula o e-mail e  senha,  a seguir os objetos declarados da classe Properties e da classe Authenticator são passados por parâmetro no método estático Session.<em>getInstance(props,auth) </em> este no qual retorna uma instância da classe <strong>Session</strong>. A seguir é declarada  um objeto da classe  <strong>Message</strong> que recebe a instância da classe <strong>MimeMessage</strong> onde em seu construtor recebe o objeto da classe Session (declarado anteriormente),  no  objeto da classe Message são definidos o destinatário, o remetente e conteúdo da mensagem.</p>
<p>Posteriormente é  declarado um objeto da classe <strong>Transport</strong> que  recebe sua instância através do método getTransport do objeto session(classe Session) que recebe por parâmetro uma String.                                                Para envio da mensagem  invocamos o método send do objeto session que recebe objeto da classe Message(declarado anteriormente).</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/javafriend.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/javafriend.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/javafriend.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/javafriend.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/javafriend.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/javafriend.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/javafriend.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/javafriend.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/javafriend.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/javafriend.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/javafriend.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/javafriend.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/javafriend.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/javafriend.wordpress.com/56/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=javafriend.wordpress.com&amp;blog=8373301&amp;post=56&amp;subd=javafriend&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://javafriend.wordpress.com/2009/09/24/enviando-email-com-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8c453e86f70e7c5332e0145851ae087d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">javafriend</media:title>
		</media:content>
	</item>
		<item>
		<title>Limitar caracteres em um JTextField</title>
		<link>http://javafriend.wordpress.com/2009/09/24/limitar-caracteres-jtextfield/</link>
		<comments>http://javafriend.wordpress.com/2009/09/24/limitar-caracteres-jtextfield/#comments</comments>
		<pubDate>Thu, 24 Sep 2009 12:08:54 +0000</pubDate>
		<dc:creator>Danilo Akamine</dc:creator>
				<category><![CDATA[Desktop]]></category>
		<category><![CDATA[POO]]></category>
		<category><![CDATA[document]]></category>
		<category><![CDATA[insertstring]]></category>
		<category><![CDATA[jtextfield]]></category>
		<category><![CDATA[limite]]></category>
		<category><![CDATA[maxlength]]></category>
		<category><![CDATA[plaindocument]]></category>
		<category><![CDATA[setDocument]]></category>

		<guid isPermaLink="false">http://javafriend.wordpress.com/?p=62</guid>
		<description><![CDATA[Para limitar uma quantidade de caracteres em um JTextField não existe nenhuma propriedade como por exemplo um atributo maxlength do &#60;input&#62; HTML. Porém, graças a facilidade da API Java Swing é possível implementar um novo comportamento para a entrada de dados do seu componente. A Classe JTextField possui um método de instância chamado setDocument() que [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=javafriend.wordpress.com&amp;blog=8373301&amp;post=62&amp;subd=javafriend&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Para limitar uma quantidade de caracteres em um JTextField não existe nenhuma propriedade como por exemplo um atributo maxlength do &lt;input&gt; HTML. Porém, graças a facilidade da API Java Swing é possível implementar um novo comportamento para a entrada de dados do seu componente.</p>
<p>A Classe <strong>JTextField</strong> possui um método de instância chamado <strong>setDocument()</strong> que recebe uma interface Document como parâmetro.</p>
<p>Para fazer nosso novo comportamento basta criar uma classe que implemente Document, mas para facilitar criaremos uma classe que estende de PlainDocument (classe que já implementa Document). Então sobrescreveremos o método <strong>insertString()</strong> que é responsável pela entrada de dados no componente.</p>
<div><!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --><span style="color:#008080;"> 1</span> <span style="color:#0000FF;">package</span><span style="color:#000000;"> com.wordpress.javafriend;<br />
</span><span style="color:#008080;"> 2</span> <span style="color:#000000;"><br />
</span><span style="color:#008080;"> 3</span> <span style="color:#0000FF;">import</span><span style="color:#000000;"> javax.swing.text.AttributeSet;<br />
</span><span style="color:#008080;"> 4</span> <span style="color:#0000FF;">import</span><span style="color:#000000;"> javax.swing.text.BadLocationException;<br />
</span><span style="color:#008080;"> 5</span> <span style="color:#0000FF;">import</span><span style="color:#000000;"> javax.swing.text.PlainDocument;<br />
</span><span style="color:#008080;"> 6</span> <span style="color:#000000;"><br />
</span><span style="color:#008080;"> 7</span> <span style="color:#0000FF;">public</span><span style="color:#000000;"> </span><span style="color:#0000FF;">class</span><span style="color:#000000;"> NovoDocumento </span><span style="color:#0000FF;">extends</span><span style="color:#000000;"> PlainDocument {<br />
</span><span style="color:#008080;"> 8</span>     <span style="color:#666666;">@Override<br />
</span><span style="color:#008080;"> 9</span>     <span style="color:#0000FF;">public</span><span style="color:#000000;"> </span><span style="color:#0000FF;">void</span><span style="color:#000000;"> insertString(</span><span style="color:#0000FF;">int</span><span style="color:#000000;"> offset, String str, AttributeSet a) </span><span style="color:#0000FF;">throws</span><span style="color:#000000;"> BadLocationException {<br />
</span><span style="color:#008080;">10</span>         <span style="color:#0000FF;">if</span><span style="color:#000000;"> (getLength() </span><span style="color:#000000;">&gt;</span><span style="color:#000000;"> </span><span style="color:#000000;">5</span><span style="color:#000000;">)<br />
</span><span style="color:#008080;">11</span>              <span style="color:#0000FF;">return</span><span style="color:#000000;">;<br />
</span><span style="color:#008080;">12</span>         <span style="color:#0000FF;">super</span><span style="color:#000000;">.insertString(offset, str, a);<br />
</span><span style="color:#008080;">13   </span><span style="color:#000000;">}<br />
</span><span style="color:#008080;">14</span> <span style="color:#000000;">}</span></div>
<div><span style="color:#000000;"><br />
</span></div>
<div><span style="color:#000000;">O método <strong>insertString()</strong> é chamado implicitamente em qualquer entrada de dados no campo, seja por digitação, CTRL+V ou até mesmo uma chamada a<strong> <span style="font-weight:normal;">setText()</span><span style="font-weight:normal;">.</span><span style="font-weight:normal;"> </span></strong>O método <strong>getLength()</strong> é responsável por retornar a quantidade de caracteres já inseridos no campo até o momento e com um simples IF estamos validando se a quantidade já passou de 5 caracteres para impedir que seja inserido mais alguma coisa.</span></div>
<div>Vale a pena dizer que esse parâmetro <em>String str</em> que o método recebe guarda o que está prestes a ser inserido, por exemplo se eu aperto a tecla &#8220;B&#8221; no campo essa variável armazenará uma string &#8220;B&#8221;. E o parâmetro <em>int offset</em> armazena a posição que a futura string será inserida, entende-se como posição do cursor no componente.<br />
 </div>
<div>Depois é só passar uma instância de nossa classe para a propriedade Document do seu objeto JTextField.<br />
 </div>
<div><span style="color:#008080;">1</span> <span style="color:#000000;">objetoTextField.setDocument(</span><span style="color:#0000FF;">new</span><span style="color:#000000;"> NovoDocumento());</span></div>
<div style="margin:15px 0;">Conhecendo como  o método insertString()  trabalha é possível fazer inumeras funcionalidades para seu componente, como por exemplo uma mascara que só aceita números.</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/javafriend.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/javafriend.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/javafriend.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/javafriend.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/javafriend.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/javafriend.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/javafriend.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/javafriend.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/javafriend.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/javafriend.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/javafriend.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/javafriend.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/javafriend.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/javafriend.wordpress.com/62/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=javafriend.wordpress.com&amp;blog=8373301&amp;post=62&amp;subd=javafriend&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://javafriend.wordpress.com/2009/09/24/limitar-caracteres-jtextfield/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6b286497dd9682447333784f5082bce1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">danilow</media:title>
		</media:content>
	</item>
		<item>
		<title>Implementando Observer com Swing</title>
		<link>http://javafriend.wordpress.com/2009/07/11/implementando-observer-com-swing/</link>
		<comments>http://javafriend.wordpress.com/2009/07/11/implementando-observer-com-swing/#comments</comments>
		<pubDate>Sat, 11 Jul 2009 17:08:48 +0000</pubDate>
		<dc:creator>Danilo Akamine</dc:creator>
				<category><![CDATA[Design Pattern]]></category>
		<category><![CDATA[Desktop]]></category>
		<category><![CDATA[POO]]></category>
		<category><![CDATA[control]]></category>
		<category><![CDATA[model]]></category>
		<category><![CDATA[mvc]]></category>
		<category><![CDATA[observable]]></category>
		<category><![CDATA[observer]]></category>
		<category><![CDATA[swing]]></category>
		<category><![CDATA[view]]></category>

		<guid isPermaLink="false">http://javafriend.wordpress.com/?p=41</guid>
		<description><![CDATA[Um problema muito comum é o gerenciamento e comunicação entre janelas em uma aplicação Swing. Vou deixar aqui uma breve explicação de como resolver isso utilizando o padrão Observer que é facilmente aplicável utilizando as implementações prontas disponíveis na API Java. O que é Observer? O design pattern Observer permite que objetos sejam notificados sobre [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=javafriend.wordpress.com&amp;blog=8373301&amp;post=41&amp;subd=javafriend&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Um problema muito comum é o gerenciamento e comunicação entre janelas em uma aplicação Swing. Vou deixar aqui uma breve explicação de como resolver isso utilizando o padrão Observer que é facilmente aplicável utilizando as implementações prontas disponíveis na API Java.</p>
<p><strong>O que é Observer?</strong></p>
<p>O design pattern Observer permite que objetos sejam notificados sobre mudanças de estado de outro objeto sem possuir um forte acoplamento entre eles. O observado não conhece e nem deseja conhecer o observador, apenas envia notificações a ele avisando sobre possíveis mudanças.</p>
<p><strong>Observer + MVC + Swing</strong></p>
<p>Aproveitando o poder do Observer podemos montar uma arquitetura MVC simples onde a camada de Controle após solicitar os dados ao Modelo, envia para a camada da View os dados solicitados. O Controle no momento deste envio não sabe para onde está enviando os dados, e a View não sabe quem enviou a ela, mas ela sabe como receber esses dados e exibir da forma correta na tela.</p>
<p><strong>Exemplo</strong></p>
<p>Colocamos aqui 2 exemplos, a classe ClienteController e ClienteView. Veja a comunicação entre elas, a explicação está nos comentários lembrando que foi comentado apenas o que estamos mostrando nesse post.<br />
 </p>
<p><span style="color:#ff0000;"><strong><span style="color:#003366;"><span style="text-decoration:underline;">ClienteView.java</span></span></strong></span></p>
<div><!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --><span style="color:#008080;"> 1</span> <span style="color:#0000FF;">package</span><span style="color:#000000;"> com.wordpress.javafriend;<br />
</span><span style="color:#008080;"> 2</span> <span style="color:#000000;"><br />
</span><span style="color:#008080;"> 3</span> <span style="color:#0000FF;">import</span><span style="color:#000000;"> java.awt.Color;<br />
</span><span style="color:#008080;"> 4</span> <span style="color:#0000FF;">import</span><span style="color:#000000;"> java.awt.Dimension;<br />
</span><span style="color:#008080;"> 5</span> <span style="color:#0000FF;">import</span><span style="color:#000000;"> java.awt.FlowLayout;<br />
</span><span style="color:#008080;"> 6</span> <span style="color:#0000FF;">import</span><span style="color:#000000;"> java.awt.event.ActionEvent;<br />
</span><span style="color:#008080;"> 7</span> <span style="color:#0000FF;">import</span><span style="color:#000000;"> java.awt.event.ActionListener;<br />
</span><span style="color:#008080;"> 8</span> <span style="color:#0000FF;">import</span><span style="color:#000000;"> java.util.Observable;<br />
</span><span style="color:#008080;"> 9</span> <span style="color:#0000FF;">import</span><span style="color:#000000;"> java.util.Observer;<br />
</span><span style="color:#008080;">10</span> <span style="color:#000000;"><br />
</span><span style="color:#008080;">11</span> <span style="color:#0000FF;">import</span><span style="color:#000000;"> javax.swing.JButton;<br />
</span><span style="color:#008080;">12</span> <span style="color:#0000FF;">import</span><span style="color:#000000;"> javax.swing.JFrame;<br />
</span><span style="color:#008080;">13</span> <span style="color:#0000FF;">import</span><span style="color:#000000;"> javax.swing.JPanel;<br />
</span><span style="color:#008080;">14</span> <span style="color:#0000FF;">import</span><span style="color:#000000;"> javax.swing.JTextPane;<br />
</span><span style="color:#008080;">15</span> <span style="color:#000000;"><br />
</span><span style="color:#008080;">16</span> <span style="color:#0000FF;">public</span><span style="color:#000000;"> </span><span style="color:#0000FF;">class</span><span style="color:#000000;"> ClienteView </span><span style="color:#0000FF;">extends</span><span style="color:#000000;"> JFrame </span><span style="color:#0000FF;">implements</span><span style="color:#000000;"> Observer {<br />
</span><span style="color:#008080;">17</span>     <span style="color:#0000FF;">private</span><span style="color:#000000;"> JTextPane visor;<br />
</span><span style="color:#008080;">18</span>     <span style="color:#0000FF;">private</span><span style="color:#000000;"> JPanel painel;<br />
</span><span style="color:#008080;">19    </span> <span style="color:#0000FF;">private</span><span style="color:#000000;"> JButton botao;<br />
</span><span style="color:#008080;">20</span>    <span style="color:#008000;">//</span><span style="color:#008000;"> Atributo principal para nosso exemplo</span><span style="color:#008000;"><br />
</span><span style="color:#008080;">21</span>     <span style="color:#0000FF;">private</span><span style="color:#000000;"> ClienteController controle;<br />
</span><span style="color:#008080;">22</span> <span style="color:#000000;"><br />
</span><span style="color:#008080;">23</span>     <span style="color:#0000FF;">public</span><span style="color:#000000;"> ClienteView() {<br />
</span><span style="color:#008080;">24</span>         <span style="color:#0000FF;">super</span><span style="color:#000000;">(</span><span style="color:#000000;">&#8220;</span><span style="color:#000000;">Listagem de Clientes</span><span style="color:#000000;">&#8220;</span><span style="color:#000000;">);<br />
</span><span style="color:#008080;">25</span>         <span style="color:#000000;">setSize(</span><span style="color:#000000;">200</span><span style="color:#000000;">, </span><span style="color:#000000;">300</span><span style="color:#000000;">);<br />
</span><span style="color:#008080;">26</span>         <span style="color:#000000;">setLocationRelativeTo(</span><span style="color:#0000FF;">null</span><span style="color:#000000;">);<br />
</span><span style="color:#008080;">27</span> <span style="color:#000000;"><br />
</span><span style="color:#008080;">28</span>         <span style="color:#000000;">painel </span><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#0000FF;">new</span><span style="color:#000000;"> JPanel(</span><span style="color:#0000FF;">new</span><span style="color:#000000;"> FlowLayout());<br />
</span><span style="color:#008080;">29</span>         <span style="color:#000000;">visor </span><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#0000FF;">new</span><span style="color:#000000;"> JTextPane();<br />
</span><span style="color:#008080;">30        </span> <span style="color:#000000;">visor.setContentType(</span><span style="color:#000000;">&#8220;</span><span style="color:#000000;">text/html</span><span style="color:#000000;">&#8220;</span><span style="color:#000000;">);<br />
</span><span style="color:#008080;">31</span>         <span style="color:#000000;">visor.setBackground(Color.LIGHT_GRAY);<br />
</span><span style="color:#008080;">32</span>         <span style="color:#000000;">visor.setPreferredSize(</span><span style="color:#0000FF;">new</span><span style="color:#000000;"> Dimension(</span><span style="color:#000000;">200</span><span style="color:#000000;">, </span><span style="color:#000000;">200</span><span style="color:#000000;">));<br />
</span><span style="color:#008080;">33</span>         <span style="color:#000000;">botao </span><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#0000FF;">new</span><span style="color:#000000;"> JButton(</span><span style="color:#000000;">&#8220;</span><span style="color:#000000;">Solicitar listagem</span><span style="color:#000000;">&#8220;</span><span style="color:#000000;">);<br />
</span><span style="color:#008080;">34</span>         <span style="color:#000000;">botao.addActionListener(</span><span style="color:#0000FF;">new</span><span style="color:#000000;"> AcaoBotao());<br />
</span><span style="color:#008080;">35</span>         <span style="color:#000000;">painel.add(visor);<br />
</span><span style="color:#008080;">36</span>         <span style="color:#000000;">painel.add(botao);<br />
</span><span style="color:#008080;">37</span>         <span style="color:#000000;">getContentPane().add(painel);<br />
</span><span style="color:#008080;">38</span> <span style="color:#000000;"><br />
</span><span style="color:#008080;">39</span>         <span style="color:#008000;">//</span><span style="color:#008000;"> Instancia o controle</span><span style="color:#008000;"><br />
</span><span style="color:#008080;">40</span>         <span style="color:#000000;">controle </span><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#0000FF;">new</span><span style="color:#000000;"> ClienteController();<br />
</span><span style="color:#008080;">41</span>         <span style="color:#008000;">//</span><span style="color:#008000;"> Adiciona essa tela como observadora, a partir de agora qualquer mudança de estado no controle a tela será notificada</span><span style="color:#008000;"><br />
</span><span style="color:#008080;">42</span>         <span style="color:#000000;">controle.addObserver(</span><span style="color:#0000FF;">this</span><span style="color:#000000;">);<br />
</span><span style="color:#008080;">43</span>     <span style="color:#000000;">}<br />
</span><span style="color:#008080;">44</span> <span style="color:#000000;"><br />
</span><span style="color:#008080;">45</span>     <span style="color:#0000FF;">public</span><span style="color:#000000;"> </span><span style="color:#0000FF;">void</span><span style="color:#000000;"> init() {<br />
</span><span style="color:#008080;">46</span>         <span style="color:#000000;">setDefaultCloseOperation(EXIT_ON_CLOSE);<br />
</span><span style="color:#008080;">47</span>         <span style="color:#000000;">setVisible(</span><span style="color:#0000FF;">true</span><span style="color:#000000;">);<br />
</span><span style="color:#008080;">48</span>     <span style="color:#000000;">}<br />
</span><span style="color:#008080;">49</span> <span style="color:#000000;"><br />
</span><span style="color:#008080;">50</span>     <span style="color:#008000;">//</span><span style="color:#008000;"> Innerclass responsável pela ação do botão</span><span style="color:#008000;"><br />
</span><span style="color:#008080;">51</span>     <span style="color:#0000FF;">private</span><span style="color:#000000;"> </span><span style="color:#0000FF;">class</span><span style="color:#000000;"> AcaoBotao </span><span style="color:#0000FF;">implements</span><span style="color:#000000;"> ActionListener {<br />
</span><span style="color:#008080;">52</span>         <span style="color:#0000FF;">public</span><span style="color:#000000;"> </span><span style="color:#0000FF;">void</span><span style="color:#000000;"> actionPerformed(ActionEvent e) {<br />
</span><span style="color:#008080;">53</span>             <span style="color:#000000;">controle.solicitarCliente(); </span><span style="color:#008000;">//</span><span style="color:#008000;"> Executando uma ação no controle</span><span style="color:#008000;"><br />
</span><span style="color:#008080;">54</span>         <span style="color:#000000;">}<br />
</span><span style="color:#008080;">55</span>     <span style="color:#000000;">}<br />
</span><span style="color:#008080;">56</span> <span style="color:#000000;"><br />
</span><span style="color:#008080;">57</span>     <span style="color:#000000;">@Override<br />
</span><span style="color:#008080;">58</span>     <span style="color:#0000FF;">public</span><span style="color:#000000;"> </span><span style="color:#0000FF;">void</span><span style="color:#000000;"> update(Observable arg, Object arg1) {<br />
</span><span style="color:#008080;">59</span>         <span style="color:#008000;">//</span><span style="color:#008000;"> Quando este método for chamado, é porque houve mudanças no objeto que estava sendo observado (o controle)<br />
</span><span style="color:#008080;">60</span>         <span style="color:#008000;">//</span><span style="color:#008000;"> arg1: trará informações opcionais do que foi alterado ou solicitado<br />
</span><span style="color:#008080;">61</span>         <span style="color:#008000;">//</span><span style="color:#008000;"> detalhe: a view não precisa saber quem enviou os dados, mas tem certeza de que eles vieram</span><span style="color:#008000;"><br />
</span><span style="color:#008080;">62</span>         <span style="color:#000000;">visor.setText((String) arg1);    <span style="color:#008000;">//</span><span style="color:#008000;"> mostrando na tela as informações enviadas pelo controle</span><br />
</span><span style="color:#008080;">63</span>     <span style="color:#000000;">}<br />
</span><span style="color:#008080;">64</span> <span style="color:#000000;"><br />
</span><span style="color:#008080;">65</span>     <span style="color:#0000FF;">public</span><span style="color:#000000;"> </span><span style="color:#0000FF;">static</span><span style="color:#000000;"> </span><span style="color:#0000FF;">void</span><span style="color:#000000;"> main(String[] args) {<br />
</span><span style="color:#008080;">66</span>         <span style="color:#0000FF;">new</span><span style="color:#000000;"> ClienteView().init();<br />
</span><span style="color:#008080;">67</span>     <span style="color:#000000;">}<br />
</span><span style="color:#008080;">68</span> <span style="color:#000000;">}<br />
</span><span style="color:#008080;">69</span> <span style="color:#008080;"><br />
</span></div>
<div style="margin-top:15px;"><span style="color:#003366;"><strong><span style="text-decoration:underline;">ClienteController.java</span></strong></span></div>
<div><span style="color:#008080;"><br />
</span></div>
<div><!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --><span style="color:#008080;"> 1</span> <span style="color:#0000FF;">package</span><span style="color:#000000;"> com.wordpress.javafriend;<br />
</span><span style="color:#008080;"> 2</span> <span style="color:#000000;"><br />
</span><span style="color:#008080;"> 3</span> <span style="color:#000000;"> </span><span style="color:#0000FF;">import</span><span style="color:#000000;"> java.util.Observable;<br />
</span><span style="color:#008080;"> 4</span> <span style="color:#000000;"><br />
</span><span style="color:#008080;"> 5</span> <span style="color:#000000;"> </span><span style="color:#0000FF;">public</span><span style="color:#000000;"> </span><span style="color:#0000FF;">class</span><span style="color:#000000;"> ClienteController </span><span style="color:#0000FF;">extends</span><span style="color:#000000;"> Observable {<br />
</span><span style="color:#008080;"> 6</span>     <span style="color:#0000FF;">public</span><span style="color:#000000;"> </span><span style="color:#0000FF;">void</span><span style="color:#000000;"> solicitarCliente() {<br />
</span><span style="color:#008080;"> 7</span>         <span style="color:#008000;">//</span><span style="color:#008000;"> Aqui você faria uma solicitação de dados para um DAO por exemplo<br />
</span><span style="color:#008080;"> 8</span>         <span style="color:#008000;">//</span><span style="color:#008000;"> mas como isso é apenas um exemplo, estou criando os dados aqui mesmo</span><span style="color:#008000;"><br />
</span><span style="color:#008080;"> 9</span> <span style="color:#008000;"> </span><span style="color:#000000;">        String dados </span><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#000000;">&#8220;</span><span style="color:#000000;">Danilo &lt;br&gt; Roberto &lt;br&gt; Oscar</span><span style="color:#000000;">&#8220;</span><span style="color:#000000;">;<br />
</span><span style="color:#008080;">10</span>       <span style="color:#008000;">//</span><span style="color:#008000;"> Avisa a todos seus &#8220;observadores&#8221; que houve mudança de estado</span><span style="color:#008000;"><br />
</span><span style="color:#008080;">11</span> <span style="color:#008000;"> </span><span style="color:#000000;">      setChanged();<br />
</span><span style="color:#008080;">12</span>        <span style="color:#008000;">//</span><span style="color:#008000;"> Envia dados aos &#8220;observadores&#8221; (quem está observando chamará o método update() implicitamente)<br />
</span><span style="color:#008080;">13</span>        <span style="color:#008000;">//</span><span style="color:#008000;"> detalhe: o controle não sabe para onde está enviando os dados</span><span style="color:#008000;"><br />
</span><span style="color:#008080;">14</span>        <span style="color:#000000;">notifyObservers(dados);<br />
</span><span style="color:#008080;">15</span>     <span style="color:#000000;">}<br />
</span><span style="color:#008080;">16</span> <span style="color:#000000;">}</span></div>
<div style="margin:15px 0;">Lembrando que estes são exemplos simples de uma implementação Observer com Swing, partindo dessa idéia inicial você pode fazer muitas coisas.</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/javafriend.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/javafriend.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/javafriend.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/javafriend.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/javafriend.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/javafriend.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/javafriend.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/javafriend.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/javafriend.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/javafriend.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/javafriend.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/javafriend.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/javafriend.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/javafriend.wordpress.com/41/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=javafriend.wordpress.com&amp;blog=8373301&amp;post=41&amp;subd=javafriend&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://javafriend.wordpress.com/2009/07/11/implementando-observer-com-swing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6b286497dd9682447333784f5082bce1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">danilow</media:title>
		</media:content>
	</item>
		<item>
		<title>Conectando no Excel via (ODBC)</title>
		<link>http://javafriend.wordpress.com/2009/07/06/conectando-no-excel-via-odbc/</link>
		<comments>http://javafriend.wordpress.com/2009/07/06/conectando-no-excel-via-odbc/#comments</comments>
		<pubDate>Mon, 06 Jul 2009 16:39:39 +0000</pubDate>
		<dc:creator>Roberto Santos Marques da Silva</dc:creator>
				<category><![CDATA[Desktop]]></category>
		<category><![CDATA[dbq]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[jdbc]]></category>
		<category><![CDATA[JdbcOdbcDriver]]></category>
		<category><![CDATA[odbc]]></category>
		<category><![CDATA[planilha]]></category>
		<category><![CDATA[select]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://javafriend.wordpress.com/?p=3</guid>
		<description><![CDATA[Acessar informações de arquivos Excel(*.xls) no Java é muito fácil e simples, isso é possível devido ao uso de drivers ODBC e o único requisito necessário é ter o Microsoft Office Excel instalado. Uma das vantagens dessa conexão é poder fazer o uso de instruções SQL, como por exemplo um SELECT, comando utilizado largamente em [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=javafriend.wordpress.com&amp;blog=8373301&amp;post=3&amp;subd=javafriend&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Acessar informações de arquivos Excel(*.xls) no Java é muito fácil e simples, isso é possível devido ao uso de drivers ODBC e o único requisito necessário é ter o Microsoft Office Excel instalado. Uma das vantagens dessa conexão é poder fazer o uso de instruções SQL, como por exemplo um SELECT, comando utilizado largamente em banco de dados convencionais.</p>
<p>Primeiramente crie o arquivo Excel seguindo a estrutura abaixo:</p>
<p><a href="http://javafriend.files.wordpress.com/2009/07/conexaoexcel.png" target="_blank"><img class="aligncenter" title="Excel" src="http://javafriend.files.wordpress.com/2009/07/conexaoexcel.png?w=180&#038;h=224" alt="" width="180" height="224" /></a></p>
<p>Observe que a primeira linha da planilha está reservada para servir como colunas de uma tabela, já o nome da planilha (não do arquivo) se comportará como uma tabela lembrando que estes valores serão utilizados na cláusula SELECT.<br />
Os registros estão a partir da segunda linha da planilha.</p>
<p>Abaixo um exemplo de consulta simples em um arquivo do Excel:</p>
<div><!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --><span style="color:#008080;">1</span> <span style="color:#0000FF;">package</span><span style="color:#000000;"> com.wordpress.javafriend;<br />
</span><span style="color:#008080;">2</span> <span style="color:#0000FF;">import</span><span style="color:#000000;"> java.sql.Connection;<br />
</span><span style="color:#008080;">3</span> <span style="color:#0000FF;">import</span><span style="color:#000000;"> java.sql.DriverManager;<br />
</span><span style="color:#008080;">4</span> <span style="color:#0000FF;">import</span><span style="color:#000000;"> java.sql.ResultSet;<br />
</span><span style="color:#008080;">5</span> <span style="color:#0000FF;">import</span><span style="color:#000000;"> java.sql.Statement;<br />
</span><span style="color:#008080;">6</span> <span style="color:#000000;"><br />
</span><span style="color:#008080;">7</span> <span style="color:#0000FF;">public</span><span style="color:#000000;"> </span><span style="color:#0000FF;">class</span><span style="color:#000000;"> ConexaoExcel {<br />
</span><span style="color:#008080;">8</span>     <span style="color:#0000FF;">public</span><span style="color:#000000;"> </span><span style="color:#0000FF;">static</span><span style="color:#000000;"> </span><span style="color:#0000FF;">void</span><span style="color:#000000;"> main(String args[]) {<br />
</span><span style="color:#008080;">9</span>         <span style="color:#000000;">Connection con </span><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#0000FF;">null</span><span style="color:#000000;">;<br />
</span><span style="color:#008080;">10</span>       <span style="color:#000000;">Statement stm </span><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#0000FF;">null</span><span style="color:#000000;">;<br />
</span><span style="color:#008080;">11</span>       <span style="color:#000000;">ResultSet rs </span><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#0000FF;">null</span><span style="color:#000000;">;<br />
</span><span style="color:#008080;">12</span> <span style="color:#000000;"><br />
</span><span style="color:#008080;">13</span>      <span style="color:#0000FF;">try</span><span style="color:#000000;"> {<br />
</span><span style="color:#008080;">14</span>         <span style="color:#000000;">Class.forName(</span><span style="color:#000000;">&#8220;</span><span style="color:#000000;">sun.jdbc.odbc.JdbcOdbcDriver</span><span style="color:#000000;">&#8220;</span><span style="color:#000000;">);<br />
</span><span style="color:#008080;">15</span>         <span style="color:#000000;">con </span><span style="color:#000000;">=</span><span style="color:#000000;"> DriverManager.getConnection(</span><span style="color:#000000;">&#8220;</span><span style="color:#000000;">jdbc:odbc:Arquivos do Excel;DBQ=c:/arquivo.xls</span><span style="color:#000000;">&#8220;</span><span style="color:#000000;">);<br />
</span><span style="color:#008080;">16</span> <span style="color:#000000;"><br />
</span><span style="color:#008080;">17</span>         <span style="color:#000000;">stm </span><span style="color:#000000;">=</span><span style="color:#000000;"> con.createStatement();<br />
</span><span style="color:#008080;">18</span>         <span style="color:#000000;">rs </span><span style="color:#000000;">=</span><span style="color:#000000;"> stm.executeQuery(</span><span style="color:#000000;">&#8220;</span><span style="color:#000000;">SELECT * FROM [dados$]</span><span style="color:#000000;">&#8220;</span><span style="color:#000000;">);<br />
</span><span style="color:#008080;">19</span> <span style="color:#000000;"><br />
</span><span style="color:#008080;">20</span>        <span style="color:#0000FF;">while</span><span style="color:#000000;"> (rs.next()) {<br />
</span><span style="color:#008080;">21</span>             <span style="color:#000000;">System.out.println(rs.getString(</span><span style="color:#000000;">&#8220;</span><span style="color:#000000;">nome</span><span style="color:#000000;">&#8220;</span><span style="color:#000000;">) </span><span style="color:#000000;">+</span><span style="color:#000000;"> </span><span style="color:#000000;">&#8220;</span><span style="color:#000000;"> </span><span style="color:#000000;">&#8220;</span><span style="color:#000000;"> </span><span style="color:#000000;">+</span><span style="color:#000000;"> rs.getString(</span><span style="color:#000000;">&#8220;</span><span style="color:#000000;">idade</span><span style="color:#000000;">&#8220;</span><span style="color:#000000;">));<br />
</span><span style="color:#008080;">22</span>         <span style="color:#000000;">}<br />
</span><span style="color:#008080;">23</span> <span style="color:#000000;"><br />
</span><span style="color:#008080;">24</span>         <span style="color:#000000;">rs.close();<br />
</span><span style="color:#008080;">25</span>         <span style="color:#000000;">stm.close();<br />
</span><span style="color:#008080;">26</span>         <span style="color:#000000;">con.close();<br />
</span><span style="color:#008080;">27</span>      <span style="color:#000000;">}<br />
</span><span style="color:#008080;">28</span>       <span style="color:#0000FF;">catch</span><span style="color:#000000;"> (Exception e) {<br />
</span><span style="color:#008080;">29</span>          <span style="color:#000000;">e.printStackTrace();<br />
</span><span style="color:#008080;">30</span>      <span style="color:#000000;">}<br />
</span><span style="color:#008080;">31</span>    <span style="color:#000000;">}<br />
</span><span style="color:#008080;">32</span> <span style="color:#000000;">}</span></div>
<div style="margin-bottom:20px;"> <br />
Veja que na string de conexão há um argumento <strong>DBQ</strong>, seu valor indica o caminho onde o arquivo se encontra.<br />
Muito importante lembrar que ao tentar fazer a leitura de dados deste arquivo o mesmo não pode estar aberto. Repare também que na consulta SQL o nome da tabela está entre colchetes e o nome terminado por $, se por acaso a instrução não conter esses detalhes será gerado um erro na leitura dos dados.</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/javafriend.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/javafriend.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/javafriend.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/javafriend.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/javafriend.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/javafriend.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/javafriend.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/javafriend.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/javafriend.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/javafriend.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/javafriend.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/javafriend.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/javafriend.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/javafriend.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=javafriend.wordpress.com&amp;blog=8373301&amp;post=3&amp;subd=javafriend&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://javafriend.wordpress.com/2009/07/06/conectando-no-excel-via-odbc/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8c453e86f70e7c5332e0145851ae087d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">javafriend</media:title>
		</media:content>

		<media:content url="http://javafriend.files.wordpress.com/2009/07/conexaoexcel.png?w=180" medium="image">
			<media:title type="html">Excel</media:title>
		</media:content>
	</item>
	</channel>
</rss>
